P4526 模板自适应辛普森法2
Posted wstong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P4526 模板自适应辛普森法2相关的知识,希望对你有一定的参考价值。
1 #include <bits/stdc++.h> 2 using namespace std; 3 const double eps = 1e-8; 4 double a; 5 inline double f(double x) { 6 return pow(x,a/x-x); 7 } 8 inline double simpson(double l, double r) { 9 double mid = (l+r)/2; 10 return (f(l)+4*f(mid)+f(r))*(r-l)/6; 11 } 12 inline double asr(double l, double r, double eps, double ans) { 13 double mid = (l+r)/2; 14 double ll = simpson(l,mid), rr = simpson(mid,r); 15 if (fabs(ll+rr-ans) <= 15*eps) return ll+rr+(ll+rr-ans)/15; 16 return asr(l,mid,eps/2,ll)+asr(mid,r,eps/2,rr); 17 } 18 inline double asr(double l, double r, double eps) { 19 return asr(l,r,eps,simpson(l,r)); 20 } 21 int main() { 22 scanf("%lf",&a); 23 if (a < 0) puts("orz"); 24 else printf("%.5f ",asr(eps,20.0,eps)); 25 return 0; 26 }
以上是关于P4526 模板自适应辛普森法2的主要内容,如果未能解决你的问题,请参考以下文章