【郑轻】[1841]so easy!麻麻再也不用担心我的数学了!

1841: so easy!麻麻再也不用担心我的数学了!

Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 40 Solved: 17

Description

咱们来一发so easy的数学题,这样麻麻再也不用担心我们的数学不及格了。
现在给你一个方程A[i] = (A[i-1]+A[i+1])/2 - c[i](1 <= i <= n);, 然后给你A[0]和A[n+1]
求A[1] = ?。

Input

包括多个测试样例。
对于每一个实例,第一行输入一个正整数n(1 <= n <= 3000),第二行输入两个实数A[0], A[n+1],接下来每一行输入一个实数c[i](1 <= i <= n)。

Output

对于每个测试实例,用一行输出所求得的a1(保留2位小数).

Sample Input

1
50 25
10
2
50 25
10 20

Sample Output

27.50
15.00

是一个比较不容易思考的题。
根据公式:Ai=Ai1+Ai+12ci
可以得到:An+1=2AnAn1+2cn
所以:
A2=2A1A0+2c1
A3=3A12A0+4c1+2c2=2A2A1+2c2
A4=4A13A0+6c1+4c2+2c3
A5=5A14A0+8c1+6c2+4c3+2c4
……
An+1=(n+1)A1nA0+2nc1+2(n1)c2++4cn1+2cn
所以可得
A1=An+1+nA0n1[2(ni+1)ci]n+1
由此可直接得出结果

#include<stdio.h>
double a[3020];
int main() {
    int n;
    while(scanf("%d",&n)!=EOF) {
        double f0,fn1;
        scanf("%lf %lf",&f0,&fn1);
        for(int i=1; i<=n; i++)
            scanf("%lf",&a[i]);
        double sum=0;
        for(int i=1; i<=n; i++)
            sum+=2*(n-i+1)*a[i];
        printf("%.2lf\n",(fn1+n*f0-sum)/(n+1));
    }
    return 0;
}

题目地址:【郑轻】[1841]so easy!麻麻再也不用担心我的数学了!

posted @ 2016-09-02 01:13  BoilTask  阅读(14)  评论(0编辑  收藏  举报