​题目传送门​​ 代码:

#include<bits/stdc++.h>
using namespace std;

typedef long long LL;
const int maxn=100000+100;
const int mod=1e9+7;

LL tt[maxn],sum;
int ans[maxn];
int n,m;

int main(){

scanf("%d%d",&n,&m);
tt[0]=0;
tt[1]=1;
for(int i=2;i<maxn;i++) tt[i]=(n-1)*tt[i-1]+((i%2)?i:-i)+(((i-1)%2)?i-1:1-i),tt[i]%=mod;
for(int i=1;i<=n;i++) scanf("%d",&ans[i]),sum+=ans[i],sum%=mod;
while(m--){

int x,t;
scanf("%d%d",&x,&t);
LL key=sum*tt[t]%mod;
key=((key+(t%2?-ans[x]:ans[x]))%mod+mod)%mod;
printf("%lld\n",key);
}
}