题目链接:http://codeforces.com/contest/707/problem/D

根据询问建立一棵树然后DFS。

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+3;
const int maxn=1e5+3;
int n,m,q;
vector<int> G[maxn];
bitset<N> bit[N];
bitset<N> opp;
int ope[maxn],a[maxn],b[maxn],ans[maxn];
void dfs(int x)
{
if(ope[x]==1)
{
int flag=0;
if(!bit[a[x]][b[x]])
{
bit[a[x]][b[x]]=1;
ans[x]++;
flag=1;
}
for(int i=0;i<G[x].size();i++)
{
ans[G[x][i]]=ans[x];
dfs(G[x][i]);
}
if(flag)
bit[a[x]][b[x]]=0; }
else if(ope[x]==2)
{
int flag=0;
if(bit[a[x]][b[x]])
{
bit[a[x]][b[x]]=0;
ans[x]--;
flag=1;
}
for(int i=0;i<G[x].size();i++)
{
ans[G[x][i]]=ans[x];
dfs(G[x][i]);
}
if(flag)
bit[a[x]][b[x]]=1;
}
else if(ope[x]==3)
{
ans[x]+=m-2*bit[a[x]].count();
bit[a[x]]^=opp;
for(int i=0;i<G[x].size();i++)
{
ans[G[x][i]]=ans[x];
dfs(G[x][i]);
}
bit[a[x]]^=opp;
}
else
{
for(int i=0;i<G[x].size();i++)
{
ans[G[x][i]]=ans[x];
dfs(G[x][i]);
}
}
}
int main()
{
scanf("%d %d %d",&n,&m,&q);
for(int i=1;i<=m;i++)
opp[i]=1;
for(int i=1;i<=q;i++)
{
scanf("%d",&ope[i]);
if(ope[i]==1)
{
scanf("%d %d",a+i,b+i);
G[i-1].push_back(i);
}
else if(ope[i]==2)
{
scanf("%d %d",a+i,b+i);
G[i-1].push_back(i);
}
else if(ope[i]==3)
{
scanf("%d",a+i);
G[i-1].push_back(i);
}
else
{
scanf("%d",a+i);
G[a[i]].push_back(i);
}
}
for(int i=0;i<G[0].size();i++)
{
ans[G[0][i]]=0;
dfs(G[0][i]);
}
for(int i=1;i<=q;i++)
printf("%d\n",ans[i]);
return 0;
}

codeforces 707D-(DFS+bitset)的更多相关文章

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

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

  2. [HIHO1041]国庆出游(DFS, bitset)

    题目链接:http://hihocoder.com/problemset/problem/1041 学会了用C++的bitset哈,可喜可贺.以后遇到超过64位想用位来表示状态就不愁了哈. 这题用bi ...

  3. Military Problem CodeForces 1006E (dfs序)

    J - Military Problem CodeForces - 1006E 就是一道dfs序的问题 给定一个树, 然后有q次询问. 每次给出u,k, 求以u为根的子树经过深搜的第k个儿子,如果一个 ...

  4. Graph Without Long Directed Paths CodeForces - 1144F (dfs染色)

    You are given a connected undirected graph consisting of nn vertices and mm edges. There are no self ...

  5. [CSP-S模拟测试]:世界线(DFS+bitset)

    题目描述 时间并不是一条单一的线,而是有许多世界线构成的流. 在一些时刻,世界线会发生分裂:同样的,它们也有可能在一些时刻收束在一起.如果将这些时刻抽象成点,那么这些世界线构成的网络,实际上是一张有向 ...

  6. 素数环(dfs+回溯)

    题目描述: 输入正整数n,把整数1,2...n组成一个环,使得相邻两个数和为素数.输出时从整数1开始逆时针排列并且不能重复: 例样输入: 6 例样输出: 1 4 3 2 5 6 1 6 5 2 3 4 ...

  7. UVA 291 The House Of Santa Claus(DFS算法)

    题意:从 节点1出发,一笔画出 圣诞老人的家(所谓一笔画,就是遍访所有边且每条边仅访问一次). 思路:深度优先搜索(DFS算法) #include<iostream> #include&l ...

  8. 历届试题 邮局(dfs+剪枝)

      历届试题 邮局   时间限制:1.0s   内存限制:256.0MB      问题描述 C村住着n户村民,由于交通闭塞,C村的村民只能通过信件与外界交流.为了方便村民们发信,C村打算在C村建设k ...

  9. POJ 3083 -- Children of the Candy Corn(DFS+BFS)TLE

    POJ 3083 -- Children of the Candy Corn(DFS+BFS) 题意: 给定一个迷宫,S是起点,E是终点,#是墙不可走,.可以走 1)先输出左转优先时,从S到E的步数 ...

  10. codeforces 731C(DFS)

    题目链接:http://codeforces.com/contest/731/problem/C 题意:有n只袜子(1~n),k种颜色(1~k),在m天中,左脚穿下标为l,右脚穿下标为r的袜子,问最少 ...

随机推荐

  1. C++中静态数据成员

    类的静态成员不能由类的构造函数来初始化.因为即使不存在类的任何对象时,类的静态成员依然存在并且可以被使用.类的静态成员也不能访问任何类的非静态成员. 类名和类对象都可以直接调用静态数据成员.因为静态数 ...

  2. BluetoothAdapter.LeScanCallback 参考文档

      BluetoothAdapter.LeScanCallback 参考文档   [翻译自: android开发文档] Class Overview:回调接口被用于传输LE扫描后的结果; 详情参看: ...

  3. 初始jQuery

    JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF1.5+, Safari 2.0+, Opera ...

  4. Objective-C:@property参数详解

    格式:@property(param1, param2) 类型 属性名 参数可有可无 三类参数: 1.读写属性:readwrite/readonly readwrite:产生setter\getter ...

  5. C#获取相对路径的方法

    这八种C#获取相对路径的方法,包括获取和设置当前目录的完全限定路径.获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称等等内容. C#获取相对路径1. 获取和设置当前目录的完全限定路径.   ...

  6. 在Ios里UIWebView参入js

    //修改图片大小适应webView宽高度            [webView stringByEvaluatingJavaScriptFromString:       @"var sc ...

  7. Shell脚本:使用rsync备份文件/目录

    本文我们介绍一个shell脚本,用来使用rsync命令将你本地Linux机器上的文件/目录备份到远程Linux服务器上.使用该脚本会以交互的方式实施备份,你需要提供远程备份服务器的主机名/ip地址和文 ...

  8. "数学口袋精灵"bug的发现

    团队成员的博客园地址: 曾治业:http://www.cnblogs.com/zzy999/ 陈焕恳:http://www.cnblogs.com/4249ken/ 蓝叶:http://www.cnb ...

  9. POJ 1850 Code 字符串 难度:1

    题意: 1 如果是严格升序的字母字符串,那么可以输出非0解码,否则不能译码输出0 2 字符串解码 遵循递增原则,其值为 到现在为止的所有按字母序小于该字符串的数量 + 1; #include < ...

  10. 【第41套测试题NOIP2007】【排序】【DP】【高精度】【树】【图上路径】

    先说点题外话,这两天的入学考试,炸了……语文有史以来最差,数学有史以来最差……还有4科,估计全炸……悲痛的心情,来调程序.这套题是8.31考的,从昨天晚上开始改的,因为第三题迟迟不想写,才拖到了现在. ...