B

在这里插入图片描述
在这里插入图片描述
最容易懂的题解
最后结果是`在这里插入图片描述
中间过程找这个博客

#include <iostream>
#include <cstdio>
using namespace std;
const int mod = 1e9 + 7 ;
typedef long long ll ;
const int N = 1e3 + 10 ;
ll a[N] ;
ll mu[N] ;
ll qmi(ll a , ll b)
{
	ll res = 1 ;
	while(b)
	{
		if(b & 1) res = res * a % mod ;
		a  = a * a % mod ;
		b >>= 1 ;
	}
	return res  ;
}
int main()
{
	
	int n ;
	while(scanf("%d" , &n) !=EOF)
	{
		for(int i = 1 ;i <= n;i ++)
		scanf("%d" , &a[i]) ;
		
		for(int i = 1 ;i <= n;i ++)
		{
			mu[i] = 1 ;
			for(int j = 1 ;j&& j <= n ;j ++)
			if(j == i) continue ;
			else 
		      mu[i] = mu[i] * (a[j] * a[j] % mod - a[i] * a[i] % mod + mod) % mod ;
		  mu[i] = qmi(mu[i] , mod - 2) ;
		}
		ll ans = 0 ;
		for(int i = 1 ;i <= n;i ++)
		 {
		 	ans = (ans + qmi(2 , mod - 2) * qmi(a[i] , mod - 2) % mod * mu[i] % mod + mod ) % mod  ;
		 }
		 printf("%lld\n" , ans) ;
	}

	
	return 0 ;
 } 
posted @ 2019-09-07 10:20  spnooyseed  阅读(70)  评论(0编辑  收藏  举报