hdu 1969 pie
2013-01-03 22:17
211 查看
二分,细心细心再细心,精度问题。
//freopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r",stdin); //freopen("input.txt", "r", stdin); //读数据 // freopen("output.txt", "w", stdout); //注释掉此句则输出到控制台 #include<stdio.h> #include<math.h> #define NUM 10005 double PI = acos(-1.0); double vol[NUM]; int nFriend,nPie; int avail(double x) { int ans=0; for(int i=0;i<nPie;i++){ ans+=(int)(vol[i]/x); } if(ans>=nFriend) return 1; else return 0; } int main() { int cases,i,ri; double left,right,mid,maxVol; //freopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r",stdin); scanf("%d",&cases); while(cases--){ maxVol=0; left=0.0; scanf("%d%d",&nPie,&nFriend); for(i=0;i<nPie;i++){ scanf("%d",&ri); vol[i]=PI*ri*ri; maxVol+=vol[i]; } nFriend++;//算上自己 right=maxVol/nFriend; while((right-left)>1e-6){ mid=(left+right)/2; if(avail(mid)==1){ left=mid;//尝试是否能更大 }else right=mid;//只能试看小一点的 } printf("%.4lf\n",mid); } return 0; }
相关文章推荐
- (step4.1.2)hdu 1969(Pie——二分查找)
- HDU 1969 Pie 二分法分蛋糕
- HDU 1969 Pie
- (二分)HDU 1969 pie
- HDU 1969 Pie
- HDU-1969-Pie
- Pie(hdu 1969 二分查找)
- hdu 1969 Pie(贪心+二分查找)(简单)
- HDU1969:Pie(二分)
- hdu 1969 Pie 二分
- HDU - 1969 Pie 二分
- hdu-1969-Pie
- HDU 1969 Pie
- day2 HDU 1969 Pie
- hdu 1969 Pie
- hdu 1969 pie
- Pie(HDU 1969) —— 二分
- hdu 1969 Pie(二分)
- HDU 1969 Pie
- HDU 1969 Pie(二分搜索)