为什么这样只有 40 分 WA 最后 2 个点。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod=1e9+7;
int n;
const int N=2e5+10;
ll a[N],v[N],sum,ans;
ll Pow(ll a,ll b){
ll ans=1;
while(b){
if(b&1) ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i],sum=(sum+a[i])%mod;
for(int i=1;i<=n;i++) cin>>v[i];
for(int i=1;i<=n;i++)
ans=(ans+Pow(2,(mod+sum-a[i])%mod)*(Pow((1+v[i]),a[i])-1)%mod)%mod;
cout<<ans;
return 0;
}