P12037 [USTCPC 2025] 数学分析
题目背景
题目描述
克露丝卡尔酱在中科大偶遇数学分析,拼尽全力无法战胜!请帮助她解决以下问题,帮助她不要挂科!
请编写程序计算∫01P(x)x2+1dx\displaystyle\int_{0}^1\frac{P(x)}{x^2+1}dx∫01x2+1P(x)dx
其中,P(x)P(x)P(x)为输入给定的多项式。P(x)=a0+a1x+a2x2+⋯+anxnP(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^nP(x)=a0+a1x+a2x2+⋯+anxn。
输入格式
输入第一行一个非负整数nnn(0≤n≤105)(0\le n\le 10^5)(0≤n≤105)表示多项式的次数。
输入第二行有n+1n+1n+1个整数a0,a1,…,ana_0,a_1,\dots,a_na0,a1,…,an(−104≤ai≤104)(-10^4\le a_i\le 10^4)(−104≤ai≤104)。
输出格式
输出一行,即为积分的值。
特别地,你的答案被视为正确当且仅当绝对误差或相对误差不超过10−610^{-6}10−6。正式地说,令你的答案为xxx,评测机的答案为yyy。你的答案视为正确当且仅当∣x−y∣max(1,∣y∣)≤10−6\dfrac{|x-y|}{\max(1,|y|)}\le 10^{-6}max(1,∣y∣)∣x−y∣≤10−6。
输入输出样例 #1
输入 #1
2 5 2 1输出 #1
4.8347398341输入输出样例 #2
输入 #2
0 4输出 #2
3.1415926536说明/提示
∫01x2+2x+5x2+1dx=π+ln2+1≈4.8347398341\displaystyle\int_{0}^1\frac{x^2+2x+5}{x^2+1}dx=\pi+\ln2+1\approx 4.8347398341∫01x2+1x2+2x+5dx=π+ln2+1≈4.8347398341
C++实现
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>usingnamespacestd;constlonglongMAXN=1e5+10;constdoubleA=log(2);constdoubleB=acos(-1);inlinelonglongread(){longlongx=0,f=1;charch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}returnx*f;}longlongn;doublea[MAXN],b[MAXN];intmain(){n=read();for(longlongi=0;i<=n;i++)scanf("%lf",&a[i]);for(longlongi=n-2;i>=0;i--)b[i]=a[i+2]-b[i+2];doubleans=0;for(longlongi=0;i<=n-2;i++)ans+=(double)(b[i]/((i+1)*1.0000000));ans+=A*(double)((a[1]-b[1])/2.00000000);ans+=B*(double)((a[0]-b[0])/4.00000000);printf("%.10lf\n",ans);return0;}后续
接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容