HDU2289 二分
2016-02-23 15:18
381 查看
π的精度高一点,然后在注意一下半径就可以了。
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; const double pai = 3.1415926535898; double r, R, h, v; double cal(double r, double R, double h){ double res = pai * h * (R * R + r * r + R * r) / 3.0; return res; } void solve(){ double lb = 0, ub = h; for (int i = 0; i < 100; i++){ double mid = (lb + ub) / 2; double midv = cal(r, r+(R-r)*mid/h, mid); if (midv >= v){ub = mid;} else lb = mid; } printf("%.6f\n", lb); } int main(){ int t; scanf("%d", &t); while (t--){ scanf("%lf%lf%lf%lf", &r, &R, &h, &v); solve(); } return 0; } </cstring></algorithm></cstdio>
相关文章推荐
- USACO 1.1 Greedy Gift Givers
- 书中自有编程之法
- 如何去除栅格影像的黑边?
- 验证货币类型的正则表达式
- theano中tensor的构造方法
- JS打印对象的方法&将Object转换为String的函数
- 优化代码结构笔记
- 【Java学习笔记】继承和多态
- 自定义判断客户端类型函数
- iOS开发之AsyncSocket使用
- 【Android动画】简单的组合动画按钮
- [Scala学习笔记]伴生对象和伴生类
- Cocos2d-x开发FlappyBird01-环境变量配置和测试案例运行
- Unix高级IO之非阻塞I/O
- PHP框架实现数据库连贯查询的思路解析
- 最优化问题简介
- Spark Streaming job 远程debug方法
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
- MySQL Cluster 7.0 +LVS 构建高可用环境
- GTK+窗口只弹出一次