HOJ 2651 PIE

題目:http://acm.hit.edu.cn/hoj/problem/view?id=2651

很簡單的二分枚舉,

要注意的是 1、一共是 f+1 個人(包括他自己)

2、精度問題。。被吭了好久,我把面積*e5 按道理應該可以了不知道爲什麼總是WA,改成e6後AC了。


# include <iostream>
# include <cstdio>
# include <cmath>
# define PI acos(-1)
using namespace std;
long long c[11111],s,l,r,mid,ans;
int N,n,f;
int judge(){
	int num = 0;
	for (int i(1);i<=n;i++){
		num += c[i]/mid;
	}
	return num>f;
}
int main(){
	cin >> N;
	while (N--){
		cin >> n >> f;
		long long s=0,ans=0;
		for (int i(1);i<=n;i++) {
			cin >> c[i];
			c[i] = c[i]*c[i]*PI*1000000;
			s += c[i];
		}
		for (l=0,r=s;l<=r;){
			mid = (l+r)/2;
			if (judge()){
				l=mid+1;
				ans=mid;
			}else{
				r=mid-1;
			}
		}
		printf("%.4lf\n",(double)ans/1000000);
	}
	return 0;
}


發佈了59 篇原創文章 · 獲贊 14 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章