re了20多发 还是我在测试数据上操作最后了10多发才发现的

其实只需要多加一句就好了

真的愚蠢啊,要不都能进前100了

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. const int MAXN = 100005;
  5. const int INF = 0x3f3f3f3f;
  6.  
  7. int sh[1005][1005];
  8. int flag[1005];
  9. int sum[1005];
  10. int all;
  11. int vis[MAXN];
  12. vector<int> mp[MAXN];
  13. int n,m,q;
  14.  
  15. struct Node{
  16. int ty; int x,y; int ans;
  17. }as[MAXN];
  18.  
  19. int cc = 0;
  20. const int Ed = 26;
  21. void dfs(int po,int fa) {
  22.  
  23. int x1,x2; int y1,y2,y3,y4; // sh[x1][x2], all, sum[x1], flag[x1]
  24. for(int i = 0; i < (int)mp[po].size(); ++i) {
  25. int tt = mp[po][i];
  26. int t1 = as[tt].ty; int t2 = as[tt].x; int t3 = as[tt].y;
  27.  
  28. if(t1 == 4) t2 = 0; // 这地方不写会越界 谨记啊
  29. x1 = t2; x2 = t3; y1 = sh[x1][x2]; y2 = all; y3 = sum[x1]; y4 = flag[x1];
  30.  
  31. if(t1 == 1) {
  32. if( (flag[t2] ^ sh[t2][t3]) == 0) {
  33. all ++; sh[t2][t3] ^= 1; sum[t2] ++;
  34. }
  35. }else if(t1 == 2) {
  36. if( (flag[t2] ^ sh[t2][t3]) == 1){
  37. all--; sh[t2][t3] ^= 1; sum[t2] --;
  38. }
  39. }else if(t1 == 3) {
  40. flag[t2] ^= 1;
  41. all += m-sum[t2]*2;
  42. sum[t2] = m-sum[t2];
  43. }
  44.  
  45. as[tt].ans = all;
  46. dfs(tt,po);
  47.  
  48. sh[x1][x2] = y1; all = y2; sum[x1] = y3; flag[x1] = y4;
  49. }
  50. }
  51. int main(){
  52. while(~scanf("%d %d %d",&n,&m,&q)){
  53. memset(flag,0,sizeof(flag));
  54. memset(sh,0,sizeof(sh));
  55. memset(sum,0,sizeof(sum));
  56. all = 0;
  57. cc = 0;
  58.  
  59. for(int i = 0; i <= q; ++i) mp[i].clear();
  60.  
  61. for(int i = 1; i <= q; ++i) {
  62. as[i].y = 0;
  63. scanf("%d",&as[i].ty);
  64. if(as[i].ty < 3) scanf("%d %d",&as[i].x,&as[i].y);
  65. else scanf("%d",&as[i].x);
  66.  
  67. if(as[i].ty == 4) mp[as[i].x].push_back(i);
  68. else mp[i-1].push_back(i);
  69. }
  70.  
  71. dfs(0,-1);
  72. for(int i = 1; i <= q; ++i) printf("%d\n",as[i].ans);
  73. }
  74. return 0;
  75. }

CF368 D - Persistent Bookcase的更多相关文章

  1. CodeForces #368 div2 D Persistent Bookcase DFS

    题目链接:D Persistent Bookcase 题意:有一个n*m的书架,开始是空的,现在有k种操作: 1 x y 这个位置如果没书,放书. 2 x y 这个位置如果有书,拿走. 3 x 反转这 ...

  2. 【Codeforces-707D】Persistent Bookcase DFS + 线段树

    D. Persistent Bookcase Recently in school Alina has learned what are the persistent data structures: ...

  3. Codeforces Round #368 (Div. 2) D. Persistent Bookcase

    Persistent Bookcase Problem Description: Recently in school Alina has learned what are the persisten ...

  4. Persistent Bookcase

    Persistent Bookcase time limit per test 2 seconds memory limit per test 512 megabytes input standard ...

  5. Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 暴力

    D. Persistent Bookcase 题目连接: http://www.codeforces.com/contest/707/problem/D Description Recently in ...

  6. codeforces 707D D. Persistent Bookcase(dfs)

    题目链接: D. Persistent Bookcase time limit per test 2 seconds memory limit per test 512 megabytes input ...

  7. CF707D Persistent Bookcase

    CF707D Persistent Bookcase 洛谷评测传送门 题目描述 Recently in school Alina has learned what are the persistent ...

  8. Persistent Bookcase CodeForces - 707D (dfs 离线处理有根树模型的问题&&Bitset)

    Persistent Bookcase CodeForces - 707D time limit per test 2 seconds memory limit per test 512 megaby ...

  9. D. Persistent Bookcase(Codeforces Round #368 (Div. 2))

    D. Persistent Bookcase time limit per test 2 seconds memory limit per test 512 megabytes input stand ...

随机推荐

  1. Cookie、session和localStorage、以及sessionStorage之间的区别

    一.Cookie.session和localStorage的区别 cookie的内容主要包括:名字.值.过期时间.路径和域.路径与域一起构成cookie的作用范围.若不设置时间,则表示这个cookie ...

  2. [Sdoi2017]数字表格 [莫比乌斯反演]

    [Sdoi2017]数字表格 题意:求 \[ \prod_{i=1}^n \prod_{j=1}^m f[(i,j)] \] 考场60分 其实多推一步就推倒了... 因为是乘,我们可以放到幂上 \[ ...

  3. BZOJ 3473: 字符串 [广义后缀自动机]

    3473: 字符串 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 354  Solved: 160[Submit][Status][Discuss] ...

  4. 浅谈JavaScript的事件(事件模拟)

    事件经常由操作或者通过浏览器功能触发,通过JavaScript也可以触发元素的事件.通过JavaScript触发事件,也称为事件的模拟. DOM中事件模拟 可以document的createEvent ...

  5. typedef void(*Fun)(void);

    typedef void(*Fun)(void); 函数类似于数组,函数名就是它的首地址: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  6. java线程池技术(一):ThreadFactory与BlockingQueue

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.ThreadFactory概述以及源码分析 ThreadFactory很简单,就是一个线程工厂也就是负责生产线程的,我们看下ThreadFact ...

  7. WPF ----在UserControl的xaml里绑定依赖属性

    场景:在定义wpf 用户控件的时候,希望使用时设置自定义的属性来改变用户控件里的状态或内容等. 下面直接上实例代码: 用户控件的后台代码,定义依赖属性 public partial class MyU ...

  8. angularjs 控制器、作用域、广播详解

    一.控制器 首先列出几种我们平常使用控制器时的几种误区: 我们知道angualrJs中一个控制器时可以对应不同的视图模板的,但这种实现方式存在的问题是: 如果视图1和视图2根本没有任何逻辑关系,这样& ...

  9. HTML/CSS 常用单词整理

    页面布局(layout) header 头部/页眉: index 首页/索引: logo 标志: nav/sub_nav 导航/子导航: banner 横幅广告: main/content 主体/内容 ...

  10. Java经典编程题50道之九

    一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. public class Example09 {    public s ...