思路:刚开始依照题目所给的a[i]= (a[i - 1] + a[i + 1]) / 2 - c[i],列出1到i的式子,然后全部相加,化简,得到a[1] = a[i + 1] - a[i] + a[0] - 2C(i);
之后就蒙了。。。不懂怎么搞了,后来网上看来下才发现化简的式子在进行累加的话,可以把a[i]化去,最后得到公式(i + 1)a[1] = a[i + 1] + n * a[0] - 2 * (C(1)-C(i));
#include<stdio.h>
#include<string.h>
#define N 3005
int main() {
int cas;
double c[N], sum, a, b;
scanf("%d", &cas);
while (cas--) {
int n, m;
scanf("%d", &n);
scanf("%lf %lf", &a, &b);
memset(c, 0, sizeof(c));
for(int i = 1; i <= n; i++)
scanf("%lf", &c[i]);
sum = 0;
m = n;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++)
sum += c[j];
m--;
}
printf("%.2lf\n", (b + n * a - 2 * sum) / (n + 1));
if (cas)
printf("\n");
}
return 0;
}