CF368 D - Persistent Bookcase
re了20多发 还是我在测试数据上操作最后了10多发才发现的
其实只需要多加一句就好了
真的愚蠢啊,要不都能进前100了
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- const int MAXN = 100005;
- const int INF = 0x3f3f3f3f;
- int sh[1005][1005];
- int flag[1005];
- int sum[1005];
- int all;
- int vis[MAXN];
- vector<int> mp[MAXN];
- int n,m,q;
- struct Node{
- int ty; int x,y; int ans;
- }as[MAXN];
- int cc = 0;
- const int Ed = 26;
- void dfs(int po,int fa) {
- int x1,x2; int y1,y2,y3,y4; // sh[x1][x2], all, sum[x1], flag[x1]
- for(int i = 0; i < (int)mp[po].size(); ++i) {
- int tt = mp[po][i];
- int t1 = as[tt].ty; int t2 = as[tt].x; int t3 = as[tt].y;
- if(t1 == 4) t2 = 0; // 这地方不写会越界 谨记啊
- x1 = t2; x2 = t3; y1 = sh[x1][x2]; y2 = all; y3 = sum[x1]; y4 = flag[x1];
- if(t1 == 1) {
- if( (flag[t2] ^ sh[t2][t3]) == 0) {
- all ++; sh[t2][t3] ^= 1; sum[t2] ++;
- }
- }else if(t1 == 2) {
- if( (flag[t2] ^ sh[t2][t3]) == 1){
- all--; sh[t2][t3] ^= 1; sum[t2] --;
- }
- }else if(t1 == 3) {
- flag[t2] ^= 1;
- all += m-sum[t2]*2;
- sum[t2] = m-sum[t2];
- }
- as[tt].ans = all;
- dfs(tt,po);
- sh[x1][x2] = y1; all = y2; sum[x1] = y3; flag[x1] = y4;
- }
- }
- int main(){
- while(~scanf("%d %d %d",&n,&m,&q)){
- memset(flag,0,sizeof(flag));
- memset(sh,0,sizeof(sh));
- memset(sum,0,sizeof(sum));
- all = 0;
- cc = 0;
- for(int i = 0; i <= q; ++i) mp[i].clear();
- for(int i = 1; i <= q; ++i) {
- as[i].y = 0;
- scanf("%d",&as[i].ty);
- if(as[i].ty < 3) scanf("%d %d",&as[i].x,&as[i].y);
- else scanf("%d",&as[i].x);
- if(as[i].ty == 4) mp[as[i].x].push_back(i);
- else mp[i-1].push_back(i);
- }
- dfs(0,-1);
- for(int i = 1; i <= q; ++i) printf("%d\n",as[i].ans);
- }
- return 0;
- }
CF368 D - Persistent Bookcase的更多相关文章
- CodeForces #368 div2 D Persistent Bookcase DFS
题目链接:D Persistent Bookcase 题意:有一个n*m的书架,开始是空的,现在有k种操作: 1 x y 这个位置如果没书,放书. 2 x y 这个位置如果有书,拿走. 3 x 反转这 ...
- 【Codeforces-707D】Persistent Bookcase DFS + 线段树
D. Persistent Bookcase Recently in school Alina has learned what are the persistent data structures: ...
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase
Persistent Bookcase Problem Description: Recently in school Alina has learned what are the persisten ...
- Persistent Bookcase
Persistent Bookcase time limit per test 2 seconds memory limit per test 512 megabytes input standard ...
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 暴力
D. Persistent Bookcase 题目连接: http://www.codeforces.com/contest/707/problem/D Description Recently in ...
- codeforces 707D D. Persistent Bookcase(dfs)
题目链接: D. Persistent Bookcase time limit per test 2 seconds memory limit per test 512 megabytes input ...
- CF707D Persistent Bookcase
CF707D Persistent Bookcase 洛谷评测传送门 题目描述 Recently in school Alina has learned what are the persistent ...
- Persistent Bookcase CodeForces - 707D (dfs 离线处理有根树模型的问题&&Bitset)
Persistent Bookcase CodeForces - 707D time limit per test 2 seconds memory limit per test 512 megaby ...
- 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 ...
随机推荐
- Cookie、session和localStorage、以及sessionStorage之间的区别
一.Cookie.session和localStorage的区别 cookie的内容主要包括:名字.值.过期时间.路径和域.路径与域一起构成cookie的作用范围.若不设置时间,则表示这个cookie ...
- [Sdoi2017]数字表格 [莫比乌斯反演]
[Sdoi2017]数字表格 题意:求 \[ \prod_{i=1}^n \prod_{j=1}^m f[(i,j)] \] 考场60分 其实多推一步就推倒了... 因为是乘,我们可以放到幂上 \[ ...
- BZOJ 3473: 字符串 [广义后缀自动机]
3473: 字符串 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 354 Solved: 160[Submit][Status][Discuss] ...
- 浅谈JavaScript的事件(事件模拟)
事件经常由操作或者通过浏览器功能触发,通过JavaScript也可以触发元素的事件.通过JavaScript触发事件,也称为事件的模拟. DOM中事件模拟 可以document的createEvent ...
- 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 ...
- java线程池技术(一):ThreadFactory与BlockingQueue
版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.ThreadFactory概述以及源码分析 ThreadFactory很简单,就是一个线程工厂也就是负责生产线程的,我们看下ThreadFact ...
- WPF ----在UserControl的xaml里绑定依赖属性
场景:在定义wpf 用户控件的时候,希望使用时设置自定义的属性来改变用户控件里的状态或内容等. 下面直接上实例代码: 用户控件的后台代码,定义依赖属性 public partial class MyU ...
- angularjs 控制器、作用域、广播详解
一.控制器 首先列出几种我们平常使用控制器时的几种误区: 我们知道angualrJs中一个控制器时可以对应不同的视图模板的,但这种实现方式存在的问题是: 如果视图1和视图2根本没有任何逻辑关系,这样& ...
- HTML/CSS 常用单词整理
页面布局(layout) header 头部/页眉: index 首页/索引: logo 标志: nav/sub_nav 导航/子导航: banner 横幅广告: main/content 主体/内容 ...
- Java经典编程题50道之九
一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. public class Example09 { public s ...