day2 HDU 1969 Pie
来源:互联网 发布:互联网产品设计软件 编辑:程序博客网 时间:2024/06/02 16:07
#include"iostream"#include"iomanip"using namespace std;const double PI=3.14159265358979;int t,n,f,sum;double maxx;double s[10005];int main(){ cin>>t; while(t--) { cin>>n>>f; maxx=0; for(int i=0;i<n;i++) { cin>>s[i]; s[i]=s[i]*s[i]; maxx+=s[i]; } f++; double l,r,mid; l=0; r=maxx/f; while((r-l)>0.000001) { mid=(l+r)/2.0; sum=0; for(int i=0;i<n;i++) sum+=(int)(s[i]/mid); if(sum>=f) l=mid; else r=mid; } //cout<<mid<<endl; cout<<fixed<<setprecision(4)<<mid*PI<<endl; } return 0;}二分求解能获得的最大体积,二分区间为期望的下限和上限。因为在求解出答案后还要对答案进行必要的计算才能判断是否符合条件,所以直接划分区间找答案。除此之外,题目精度有一定的要求,所以在写程序的时候,对于PI这种常识性数字,还是尽量取的越精细越好,对于二分精度的设定,也要进行一些必要的尝试和摸索。另外在条件判断中用s[i]/mid来确定每个派能分几份,这个结果应该是舍去小数的,如果直接从double赋给int貌似会进行四舍五入,导致结果WA,在加上(int)强制转换后能AC,要记住这一点。
0 0
- day2 HDU 1969 Pie
- HDU 1969 Pie
- hdu 1969 Pie
- HDU 1969 - Pie
- hdu 1969 pie
- HDU 1969 Pie
- HDU-1969pie
- hdu 1969 Pie
- HDU 1969 Pie
- HDU 1969 Pie
- hdu 1969 Pie
- HDU 1969 Pie
- HDU 1969:Pie【二分法】
- HDU 1969--Pie【二分】
- HDU 1969 Pie【二分】
- hdu 1969 pie
- hdu 1969 Pie
- hdu 1969 Pie
- Myeclipse导入jeecg后pom.xml出错
- 无线实战视频
- datatable转实体
- IOC框架
- 如何不让EditText自动弹出输入法
- day2 HDU 1969 Pie
- [李景山php]thinkphp核心源码注释|Xcache.class.php
- 表单验证
- ROS学习之关于服务的一些命令_总结
- STL总结
- Android APK文件安装过程小结
- Git用户手册--起步
- 修改TimeDateStamp值,造不同的文件.
- HTTP 验证 Tomcat中进行基本验证 (Basic Authentication) 和摘要验证 (Digest Authentication)