【Poj2601】Simple calculations 二分

来源:互联网 发布:java ioc容器 编辑:程序博客网 时间:2024/05/29 11:43

反正就是A1和An+1有线性关系(一次函数关系),二分和不二分都可以做。。。

这道题我当时在考场上死命推数学公式未遂浪费了巨多时间QAQ以后要注意

#include<cstdlib>#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<algorithm>#include<queue>#include<vector>using namespace std;double a0,an_1,c[3005],d[3005],e[3005],sumc[3005];int n;void Init(){scanf("%d",&n);scanf("%lf",&a0); scanf("%lf",&an_1);for(int i=1;i<=n;i++){scanf("%lf",&c[i]); }return ;}double check(double x){d[0]=a0; d[1]=x;for(int i=2;i<=n+1;i++){d[i]=2.0*d[i-1]+2*c[i-1]-d[i-2];}return d[n+1];}int main(){//freopen("in.txt","r",stdin);Init();double l=-1000.0,r=1000.0,mid,ans=-1;;for(int i=1;i<=100;i++){mid=(l+r)/2.0;if(check(mid)>=an_1){ans=mid;r=mid;}else{l=mid;}}printf("%.2lf\n",ans);return 0;}

0 0