Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
48254 | MattL | 【AB-1】图 | C++ | 解答错误 | 40 | 1028 MS | 12360 KB | 1116 | 2022-04-11 12:14:07 |
#include <bits/stdc++.h> using namespace std; inline long long read() { int x=0,f=1; char t=getchar(); while(t<'0'||t>'9'){if(t=='-')f=0;t=getchar();} while(t>='0'&&t<='9')x=(x<<1)+(x<<3)+(t^48),t=getchar(); return f?x:-x; } const int N=2e5+100,mod=1e9+7; long long n,m,t,u,v,cntt[N],ans=1,ct[N],tr[N<<2]; bool bj[N]; vector<int> a[N]; int build(int l,int r,int now) { if(l==r) return tr[now]=ct[l]%mod; build(l,(l+r)>>1,now<<1); build(((l+r)>>1)+1,r,now<<1|1); tr[now]=tr[now<<1]*tr[now<<1|1]%mod; return tr[now]; } int calc(int l,int r,int now) { if(l==r) return ++tr[now]; if(v<=((l+r)>>1)) return tr[now]=calc(l,(l+r)>>1,now<<1)*tr[now<<1|1]; else return tr[now]=tr[now<<1]*calc(((l+r)>>1)+1,r,now<<1|1); } int main() { // freopen("game.in","r",stdin); // freopen("game.out","w",stdout); n=read(),m=read(),t=read(); for(int i=1;i<=m;i++) u=read(),v=read(),a[u].push_back(v),ct[v]++; cout<<build(2,n,1)<<endl; while(t--) { cin>>u>>v; cout<<calc(2,n,1)<<endl; } return 0; }