您的位置:首页 > 其它

【Poj2601】Simple calculations 二分

2016-06-03 21:24 267 查看
反正就是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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: