POJ - 3122 Pie (二分+贪心 计算个数)
2017-12-24 09:37
218 查看
题意:给出n个朋友,m个苹果派,再给出m个苹果派的半径,求出可以分给n个朋友一摸一样的苹果派的最大面积(不可以拼凑,只可以是一整块)。
思路:贪心+二分
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
#include <string>
#include <cstring>
#include <cmath>
using namespace std;
#define pi acos(-1.0)
#define exp 1e-5
int s[10005];
typedef long long ll;
int n,f;
int judge(double mid)
{
ll sum=0;
for(int i=1;i<=n;i++)
{
sum+=(int)(1.0*s[i]*s[i]*pi/mid);
}
return sum>=(f+1)? 1:0;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
double sum=0.0;
scanf("%d%d",&n,&f);
for(int i=1;i<=n;i++)
{
scanf("%d",&s[i]);
sum+=1.0*s[i]*s[i]*pi;
}
double l=0.0,r=sum,mid;
while(r-l>=exp){
mid=(l+r)/2.0;
if(judge(mid))
l=mid;
else
r=mid;
}
printf("%.4lf\n",l);
}
return 0;
}
思路:贪心+二分
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
#include <string>
#include <cstring>
#include <cmath>
using namespace std;
#define pi acos(-1.0)
#define exp 1e-5
int s[10005];
typedef long long ll;
int n,f;
int judge(double mid)
{
ll sum=0;
for(int i=1;i<=n;i++)
{
sum+=(int)(1.0*s[i]*s[i]*pi/mid);
}
return sum>=(f+1)? 1:0;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
double sum=0.0;
scanf("%d%d",&n,&f);
for(int i=1;i<=n;i++)
{
scanf("%d",&s[i]);
sum+=1.0*s[i]*s[i]*pi;
}
double l=0.0,r=sum,mid;
while(r-l>=exp){
mid=(l+r)/2.0;
if(judge(mid))
l=mid;
else
r=mid;
}
printf("%.4lf\n",l);
}
return 0;
}
相关文章推荐
- POJ - 3122 Pie (二分+贪心 计算个数)
- POJ - 3122 Pie (二分+贪心 计算个数)
- POJ - 3122 Pie (二分+贪心 计算个数)
- POJ - 3122 Pie (二分+贪心 计算个数)
- POJ - 3122 Pie (二分+贪心 计算个数)
- POJ - 3122 Pie (二分+贪心 计算个数)
- POJ - 3122 Pie (二分+贪心 计算个数)
- POJ 2456 Aggressive cows(二分+贪心 计算个数)
- POJ 2456 Aggressive cows(二分+贪心 计算个数)
- POJ 2456 Aggressive cows(二分+贪心 计算个数)
- POJ 2456 Aggressive cows(二分+贪心 计算个数)
- POJ 2456 Aggressive cows(二分+贪心 计算个数)
- POJ 2456 Aggressive cows(二分+贪心 计算个数)
- POJ 2456 Aggressive cows(二分+贪心 计算个数)
- POJ——1064 Cable master(二分 + 贪心)
- poj 2318 二分+叉积计算几何基础
- [POJ](2456)Aggressive cows ---二分查找+贪心(查找+贪心)
- POJ 2456 Aggressive cows (贪心 + 二分)
- poj 2318 toys 计算几何+二分
- poj 2507 crossed ladders(计算几何,二分)