本文主要是介绍HDU 1969二分(周赛A题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这题感觉手算还可以,不过用代码就有点晕了,刚开始不知道是二分,感觉用手算没用到二分啊,所以就没想到二分……唉 做题还是太少了 努力吧……#include <iostream>
#include <map>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <map>
#include <set>
using namespace std;
const double pi=acos(-1);
double s[10010];
int main()
{int t;scanf("%d",&t);while(t--){int n,m,i,r,a;double low=0,high=0,mid;scanf("%d%d",&n,&m);m++;for(i=0;i<n;i++){scanf("%d",&r);s[i]=pi*r*r;high=max(high,s[i]);}mid=(low+high)/2;while(high-low>=0.0000001){a=0;for(i=0;i<n;i++)a+=s[i]/mid;if(a>=m) low=mid;else high=mid;mid=(low+high)/2;}printf("%.4f\n",mid);}return 0;
}
这篇关于HDU 1969二分(周赛A题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!