sgu217:Two Cylinders(simpson积分)
来源:互联网 发布:linux vi指令什么意思 编辑:程序博客网 时间:2024/05/21 04:41
题目大意:
分析:
AC code:
#include <cstdio>#include <cmath>#include <algorithm>#define ONLINE_JUDGEtypedef double DB;using namespace std;const DB eps = 1e-10;DB r1, r2;DB simpson(DB l, DB r, DB fl, DB fm, DB fr){ return (r-l)*(fl+fm*4+fr)/6;}DB sqr(DB x) {return x*x;}DB f2(DB x, DB y){ if(sqr(x)+sqr(y)-sqr(r1) >= eps) return 0; return sqrt(sqr(r2)-sqr(x))*2;}DB sol2(DB l, DB m, DB r, DB p, DB fl, DB fm, DB fr, DB ans){ DB m1 = (l+m)*0.5, m2 = (m+r)*0.5, fm1 = f2(m1, p), fm2 = f2(m2, p); DB left = simpson(l, m, fl, fm1, fm), right = simpson(m, r, fm, fm2, fr); return fabs(left+right-ans)<=eps ? ans : sol2(l, m1, m, p, fl, fm1, fm, left)+sol2(m, m2, r, p, fm, fm2, fr, right);}DB f1(DB p){ DB fl = f2(-r2, p), fm = f2(0, p), fr = f2(r2, p); return sol2(-r2, 0, r2, p, fl, fm, fr, simpson(-r2, r2, fl, fm, fr));}DB sol1(DB l, DB m, DB r, DB fl, DB fm, DB fr, DB ans){ DB m1 = (l+m)*0.5, m2 = (m+r)*0.5, fm1 = f1(m1), fm2 = f1(m2); DB left = simpson(l, m, fl, fm1, fm), right = simpson(m, r, fm, fm2, fr); return fabs(left+right-ans)<=eps ? ans : sol1(l, m1, m, fl, fm1, fm, left)+sol1(m, m2, r, fm, fm2, fr, right);}int main(){ #ifndef ONLINE_JUDGE freopen("sgu217.in", "r", stdin); freopen("sgu217.out", "w", stdout); #endif scanf("%lf%lf", &r1, &r2); if(r1 > r2) swap(r1, r2); DB fl = f1(-r1), fm = f1(0), fr = f1(r1); printf("%.4lf", sol1(-r1, 0, r1, fl, fm, fr, simpson(-r1, r1, fl, fm, fr))); #ifndef ONLINE_JUDGE fclose(stdin); fclose(stdout); #endif return 0;}
0 0
- sgu217:Two Cylinders(simpson积分)
- 【数值积分】 ZOJ 2369 Two Cylinders
- Two Cylinders (辛普森公式处理积分)
- acdream 1234-Two Cylinders(辛普森积分)
- Acdream 1234 Two Cylinders(自适应辛普森积分法)
- acdream 1234 Two Cylinders
- sgu-217 Two Cylinders
- hdu1724(定积分&&Simpson积分)
- Simpson 积分算法
- 关于Simpson积分
- 自适应simpson积分
- HDU 1724 (simpson积分)
- simpson积分公式
- acdream1234(Simpson积分)
- 自适应Simpson积分
- 地狱飞龙 [simpson][积分]
- 自适应simpson 积分
- 学习笔记: 自适应Simpson积分
- mysql data文件夹下的ibdata1 文件作用
- e5-7uva136 丑数
- iOS 加载图片时的内存警告
- android application
- 梯度下降
- sgu217:Two Cylinders(simpson积分)
- 托管DLL和非托管DLL的区别
- Vbs脚本经典教材
- Oracle Apps User Monitor(监控用户)
- synchronized 与Lock类
- eclipse导出来javadoc帮助文档
- [学习记录]Xcode的一些快捷按键
- 【学习笔记】JavaScript编码规范-字符串
- c# json数据解析——将字符串json格式数据转换成对象