poj1759 Garland
2016-05-05 13:22
267 查看
题意:花环:N个灯泡离地H_i,满足H1 = A ,Hi = (Hi-1 + Hi+1)/2 – 1,HN = B ,求最大B
思路:这题求最大的B,如果直接二分B,公式需要很多层化简代换,很麻烦。我们发现只要H2固定后,有公式Hi+1=Hi*2+2-Hi-1,最大的B也就固定了,所以我们二分H2。求满足条件最大的H2.
思路:这题求最大的B,如果直接二分B,公式需要很多层化简代换,很麻烦。我们发现只要H2固定后,有公式Hi+1=Hi*2+2-Hi-1,最大的B也就固定了,所以我们二分H2。求满足条件最大的H2.
#include<cstdio> #include<iostream> using namespace std; int n; double H[1010],A,B; bool check(double x) { H[1]=A,H[2]=x; for(int i=3;i<=n;i++){ H[i]=2.0*H[i-1]+2-H[i-2]; if(H[i]<0) return false; } B=H ; return true; } int main() { while(~scanf("%d %lf",&n,&A)){ double l=0,r=A; for(int i=0;i<=100;i++){ double mid=(l+r)*0.5; if(check(mid)) r=mid; else l=mid; } printf("%.2f\n",B); } }
相关文章推荐
- Centos 7上为Dell R730服务器挂载RAID10硬盘的过程
- 【Elasticsearch】Java Client连接池
- android studio中生成aidl
- Ajax中responseText解析json格式数据
- 网站添加微信支付功能(小白填坑)
- 【fastweixin框架教程2】weblogic javax.xml 解析xml问题
- JavaScript学习总结(十二)——JavaScript编写类
- SEO优化技巧 如何做网站运营
- 对iOS锁的一些研究
- junit内Assert.assertEquals的含义
- 【深入理解JVM】:OutOfMemoryError异常总结
- 多线程下的缓存系统
- fly
- 新导入shop++项目不能生成 Maven Dependencies目录
- JavaScript学习总结(十一)——Object类详解
- linux内核态和用户态
- java将unicode转为汉字
- Go语言的关键字
- Qt中int转换成QString float 转QString
- Difference Between TIF and TIFF