用四组数据1,2,3,4; 2,3,4,5;1,3,4,5; 1,2,4,5;来待定系数法推出四元时的公式。。。
#include <iostream>
#include <cstdio>
#include <math.h>
using namespace std;
const int mod = 1e9 + 7;
const int inv = 41666667;
int main() {
ios::sync_with_stdio(false);
int n;
while (cin >> n) {
long long sum[4], a, temp;
for(int i=0;i<4;i++)sum[i]=0;
for (int i = 0; i < n; i++) {
cin >> a; temp = a;
for (int j = 0; j < 4; j++) {
sum[j] = (sum[j] + temp) % mod;
temp = temp * a%mod;
}
}
if(n<4){
cout<<0<<endl;
continue;
}
long long ans = (sum[0] * sum[0] % mod*sum[0] % mod*sum[0]) % mod;
ans = (ans + 8 * sum[0] % mod*sum[2] % mod) % mod;
ans = (ans + 3 * sum[1] % mod*sum[1]) % mod;
ans = (ans + mod - 6 * sum[0] % mod*sum[0] % mod*sum[1] % mod) % mod;
ans = (ans + mod - 6 * sum[3] % mod) % mod;
ans = (ans*inv) % mod;
cout << ans << endl;
}
return 0;
}
京公网安备 11010502036488号