欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2019牛客暑期多校训练营(第一场)Integration

程序员文章站 2022-05-22 14:11:21
...

题目链接:https://ac.nowcoder.com/acm/contest/881/B
证明:2019牛客暑期多校训练营(第一场)IntegrationAC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
ll a[1005];
ll pre[1005];
int n;
void presolve()
{
    for(int i=1;i<=n;i++)
    {
        pre[i]=1;
        for(int j=1;j<=n;j++)
        {
            if(i!=j)
                pre[i]=pre[i]*((a[j]*a[j]%mod-a[i]*a[i]%mod+mod)%mod)%mod;
        }
    }
}
ll qpow(ll x,ll y)
{
    ll ans=1;
    while(y)
    {
        if(y&1)
            ans=ans*x%mod;
        x=x*x%mod;
        y>>=1;
    }
    return ans;
}
int main()
{

    while(cin>>n)
    {
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
        }
        ll ans=0;
        presolve();
        for(int i=1;i<=n;i++)
        {
            ll t=2*pre[i]%mod*a[i]%mod;
            ans=(ans+qpow(t,mod-2))%mod;
        }
        cout<<ans<<endl;
    }
    return 0;
}

我一定可以的!!!

相关标签: 数学