提交时间:2022-04-10 11:18:22

运行 ID: 48160

#include<bits/stdc++.h> #define mod 1000000007 using namespace std; #define N 200005 int n,m,T,In[N]; long long Mul[N<<2]; #undef N #define ls (k<<1) #define rs (k<<1|1) #define mid (l+r>>1) void Build(int k,int l,int r){ if(l==r){ Mul[k]=In[l]%mod; return; } Build(ls,l,mid); Build(rs,mid+1,r); Mul[k]=(Mul[ls]*Mul[rs])%mod; } void Add(int k,int l,int r,int p){ if(l>p||r<r) return; if(l==r){ Mul[k]=(Mul[k]+1)%mod; return; } Add(ls,l,mid,p); Add(rs,mid+1,r,p); Mul[k]=(Mul[ls]*Mul[rs])%mod; } #undef ls #undef rs #undef mid int main(){ std::ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin>>n>>m>>T; for(int i(1);i<=m;++i){ int v;cin>>v;cin>>v; ++In[v]; } In[1]=1;Build(1,1,n); cout<<Mul[1]<<endl; while(T--){ int v;cin>>v;cin>>v; Add(1,1,n,v); cout<<Mul[1]<<endl; } return 0; }