题意:已知求解
题解:通过裂项相消(n=1,n=2,n=3)的情况,可以猜测出一个规律
然后ci肯定是个常数,所以直接按照已知的情况可以得出
n个项进行求和就可以了
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 2000+5, INF = 0x3f3f3f3f; #define mod int(1e9+7) #define pi acos(-1.0) ll a[maxn],c[maxn]; ll quick_powmod(ll a,ll b){ ll ans=1; while(b){ if(b&1){ ans=(ans%mod*a%mod)%mod; } a=(a%mod*a%mod)%mod; b>>=1; } return ans; } ll inv(ll a){ return quick_powmod(a,mod-2); } int main() { int n; while(scanf("%d",&n)!=EOF){ for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); } for(int i=1;i<=n;i++){ c[i]=1ll; for(int j=1;j<=n;j++){ if(i!=j) c[i]=(c[i]%mod*(a[j]%mod*a[j]%mod-a[i]%mod*a[i]%mod+mod)%mod)%mod; } } ll ans=0; for(int i=1;i<=n;i++){ ans=(ans%mod+(inv(2)%mod*inv(a[i])%mod*inv(c[i])%mod)%mod)%mod; } cout<<ans<<endl; } }