WA求调
查看原帖
WA求调
763878
Jerry_heng楼主2024/2/26 19:32
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[200010],v[200010],ans,pw[200010];
const int md=1000000007;
int pow(int x,int y){
	int ss=1;
	while(y){
		if(y&1)ss=ss*x%md;
		x=x*x%md;
		y>>=1;
	}
	return ss;
}
signed main(){
	scanf("%lld",&n);
	int s=0;
	for(int i=1;i<=n;i++)scanf("%lld%lld",&a[i],&v[i]),s+=a[i];
//	pw[0]=1;
//	for(int i=1;i<=s;i++)pw[i]=pw[i-1]*i%md;
//	for(int i=0;i<=a[1];i++)
//		for(int j=0;j<=a[2];j++){
//			if(i==0&&j==0)continue;
//			else if(j==0)ans=(ans+pow(v[1],i)*C(a[1],i)%md)%md;
//			else if(i==0)ans=(ans+pow(v[2],j)*C(a[2],j)%md)%md;
//			else ans=(ans+((pow(v[1],i)+pow(v[2],j))%md*C(a[1],i)%md*C(a[2],j)%md))%md;
//		}
//	printf("%lld\n",ans);
//	return 0;
	for(int i=1;i<=n;i++){
		ans=(ans+pow(2ll,s-a[i])*((pow(v[i]+1ll,a[i])-1ll+md)%md)%md)%md;
	}
	printf("%lld\n",ans);
	return 0;
}
2024/2/26 19:32
加载中...