Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
48160 | wssdr | 【AB-1】图 | C++ | 解答错误 | 20 | 1000 MS | 5124 KB | 871 | 2022-04-10 11:18:22 |
#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; }