Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 dfs+bitset
来源:互联网 发布:节拍器软件哪个好 编辑:程序博客网 时间:2024/06/05 14:41
参考http://www.cnblogs.com/qscqesze/p/5791698.html
题意你有n个书架,每个书架有m层。有四个操作1 i j,在第i个书架第j层放一本书。2 i j,把第i个书架第j层的书扔掉3 i,把第三层的所有书的状态取反,就有的变没,没的变有4 k,回到第k个询问时候的状态。
先看不到样例。wa13.。
int n,m,q;bitset<1010>mask;bitset<1010>bit[N];vector<int>G[N*100];int ans[N*100];int a[N*100],b[N*100];int op[N*100];void dfs(int x){ if(x==0){ for(int i=0;i<G[x].size();++i){ ans[G[x][i]]=ans[x]; dfs(G[x][i]); } } int f=0; if(op[x]==1){ if(bit[a[x]][b[x]]==0){ f=1; bit[a[x]][b[x]]=1; ans[x]++; } for(int i=0;i<G[x].size();++i){ ans[G[x][i]]=ans[x]; dfs(G[x][i]); } if(f)bit[a[x]][b[x]]=1; } if(op[x]==2){ if(bit[a[x]][b[x]]==1){ bit[a[x]][b[x]]=0; ans[x]--; f=1; } for(int i=0;i<G[x].size();++i){ ans[G[x][i]]=ans[x]; dfs(G[x][i]); } if(f)bit[a[x]][b[x]]=0; } if(op[x]==3){ ans[x]-=bit[a[x]].count(); bit[a[x]]^=mask; ans[x]+=bit[a[x]].count(); for(int i=0;i<G[x].size();++i){ ans[G[x][i]]=ans[x]; dfs(G[x][i]); } bit[a[x]]^=mask; } if(op[x]==4){ for(int i=0;i<G[x].size();++i){ ans[G[x][i]]=ans[x]; dfs(G[x][i]); } }}int main(){ sf("%d%d%d",&n,&m,&q); for(int i=1;i<=m;++i)mask[i]=1; for(int i=1;i<=q;++i){ sf("%d",&op[i]); if(op[i]==1){ sf("%d%d",&a[i],&b[i]); } if(op[i]==2){ sf("%d%d",&a[i],&b[i]); } if(op[i]==3){ sf("%d",&a[i]); } if(op[i]==4){ sf("%d",&a[i]); G[a[i]].push_back(i); } else{ G[i-1].push_back(i); } } dfs(0); for(int i=1;i<=q;++i) pf("%d\n",ans[i]);}
阅读全文
0 0
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 dfs+bitset
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase(离线)
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 暴力
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase (离线+dfs)
- Codeforces Round #368 (Div. 2) D Persistent Bookcase(离线+DFS)
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase(dfs)
- Codeforces Round #368 (Div. 2)(D. Persistent Bookcase 离线 转化DAG)
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase (离线算法+lazy标记优化)
- Codeforces Round #368 (Div. 2)D Persistent Bookcase
- Codeforces Round #368 (Div. 2) [D] Persistent Bookcase
- Codeforces Round #368 (Div. 2) D - Persistent Bookcase
- Codeforces Problem 707D Persistent Bookcase(dfs+bitset)
- Codeforces 707D Persistent Bookcase(bitset+dfs)★
- codeforces 707 D Persistent Bookcase(dfs+bitset)
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase【可持久化线段树,区间取反
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase(可持久化)
- Codeforces 707D Persistent Bookcase 暴力(bitset)
- Codeforces Round #368-D. Persistent Bookcase-(离线建树+暴力xjb搞)/(主席树在线乱搞)
- 【转】学习路线4
- 探究C++中的三种继承方式!
- StringBuffer的用法 1、StringBuffer对象的初始化 StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方
- 终极指南——如何编写更好的SQL查询?
- java业务常用排序方法
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 dfs+bitset
- 【interleaving-string】
- 剑指offer——重建二叉树
- vue的成长之路一
- TensorFlow初学者资料梳理
- 贪心法求解单源最短路径问题
- IDEA 开发环境中 调试Spark SQL及遇到问题解决办法
- 利用Python+opencv+TensorFlow框架打造 一个试卷批改系统
- eos 校验不能有相同的名称