bzoj4730: Alice和Bob又在玩游戏
Description
#include<cstdio>
#include<cstring>
#include<algorithm>
const int N=;
int T,n,m;
int es[N*],enx[N*],e0[N],ed[N],ep=,f[N];
int sz[N*],ch[N*][],xt[N*],rt[N],p=;
void tag(int w,int h,int v){
if(w&&h>=&&v){
xt[w]^=v;
if(v>>h&)std::swap(ch[w][],ch[w][]);
}
}
void dn(int w,int h){
if(xt[w]){
tag(ch[w][],h-,xt[w]);
tag(ch[w][],h-,xt[w]);
xt[w]=;
}
}
int mex(int w){
int s=;
for(int i=,d;~i;--i){
dn(w,i);
if(sz[ch[w][]]==(<<i))w=ch[w][],s|=<<i;
else w=ch[w][];
}
return s;
}
int build(int x){
int rt=++p,w;
sz[w=rt]=;
for(int i=;~i;--i)sz[w=ch[w][x>>i&]=++p]=;
return rt;
}
int merge(int a,int b,int h){
if(!a||!b)return a|b;
dn(a,h);dn(b,h);
ch[a][]=merge(ch[a][],ch[b][],h-);
ch[a][]=merge(ch[a][],ch[b][],h-);
sz[a]=h>=?sz[ch[a][]]+sz[ch[a][]]:;
return a;
}
void dfs(int w,int pa){
ed[w]=;
int x=;
for(int i=e0[w],u;i;i=enx[i]){
u=es[i];
if(u!=pa){
dfs(u,w);
x^=f[u];
}
}
for(int i=e0[w],u;i;i=enx[i]){
u=es[i];
if(u!=pa){
tag(rt[u],,x);
rt[w]=merge(rt[w],rt[u],);
}
}
rt[w]=merge(rt[w],build(x),);
f[w]=mex(rt[w]);
tag(rt[w],,f[w]);
}
int _(){
int x=,c=getchar();
while(c<)c=getchar();
while(c>)x=x*+c-,c=getchar();
return x;
}
int main(){
for(T=_();T;--T){
if(p){
memset(ch,,sizeof(ch[])*(p+));
memset(sz,,sizeof(int)*(p+));
memset(xt,,sizeof(int)*(p+));
p=;
}
n=_();m=_();
for(int i=;i<=n;++i)e0[i]=ed[i]=f[i]=rt[i]=;
ep=;
for(int i=,a,b,c;i<m;++i){
a=_();b=_();
es[ep]=b;enx[ep]=e0[a];e0[a]=ep++;
es[ep]=a;enx[ep]=e0[b];e0[b]=ep++;
}
for(int i=;i<=n;++i)if(!ed[i]){
dfs(i,);
f[]^=f[i];
}
puts(f[]?"Alice":"Bob");
}
return ;
}
bzoj4730: Alice和Bob又在玩游戏的更多相关文章
- [UOJ266]Alice和Bob又在玩游戏
[UOJ266]Alice和Bob又在玩游戏 Tags:题解 作业部落 评论地址 TAG:博弈 题意 不同于树的删边游戏,删掉一个点删去的是到根的路径 题解 这题只和计算\(SG\)有关,博弈的有关内 ...
- UOJ #266 【清华集训2016】 Alice和Bob又在玩游戏
题目链接:Alice和Bob又在玩游戏 这道题就是一个很显然的公平游戏. 首先\(O(n^2)\)的算法非常好写.暴力枚举每个后继计算\(mex\)即可.注意计算后继的时候可以直接从父亲转移过来,没必 ...
- uoj266[清华集训2016]Alice和Bob又在玩游戏(SG函数)
uoj266[清华集训2016]Alice和Bob又在玩游戏(SG函数) uoj 题解时间 考虑如何求出每棵树(子树)的 $ SG $ . 众所周知一个状态的 $ SG $ 是其后继的 $ mex $ ...
- [BZOJ4730][清华集训2016][UOJ266] Alice和Bob又在玩游戏
题意:俩智障又在玩游戏.规则如下: 给定n个点,m条无向边(m<=n-1),保证无环,对于每一个联通块,编号最小的为它们的根(也就是形成了一片这样的森林),每次可以选择一个点,将其本身与其祖先全 ...
- 【bzoj4730】 Alice和Bob又在玩游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=4730 (题目链接) 题意 给出一个森林,两个人轮流操作,每次把一个节点以及它的祖先全部抹去,无节点可 ...
- uoj#266. 【清华集训2016】Alice和Bob又在玩游戏(博弈论)
传送门 完了我连sg函数是个啥都快忘了 设\(sg[u]\)为以\(u\)为根节点的子树的\(sg\)函数值,\(rem[u]\)表示\(u\)到根节点的路径删掉之后剩下的游戏的异或值 根节点\(u\ ...
- UOJ 266 - 【清华集训2016】Alice和Bob又在玩游戏(SG 定理+01-trie)
题面传送门 神仙题. 首先注意到此题的游戏是一个 ICG,故考虑使用 SG 定理解决这个题,显然我们只需对每个连通块计算一遍其 SG 值异或起来检验是否非零即可.注意到我们每删除一个点到根节点的路径后 ...
- UOJ#266. 【清华集训2016】Alice和Bob又在玩游戏 博弈,DSU on Tree,Trie
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ266.html 题解 首先我们可以直接暴力 $O(n^2)$ 用 sg 函数来算答案. 对于一个树就是枚举 ...
- 【清华集训2016】Alice和Bob又在玩游戏
不难的题目.因为SG性质,所以只需要对一棵树求出. 然后如果发现从上往下DP不太行,所以从下往上DP. 考虑一个点对子树的合并,考虑下一个删的点在哪一个子树,那么剩下的状态实际上就是把一个子树所有能达 ...
随机推荐
- Centos7搭建java+mysql环境
前几天买了个国外的vps,打算用来练练手,准备安装mysql+jdk+tomcat+git,然后就从网上找些资料开始安装. 1.准备工具 首先,需要连接到centos,这里我用的连接工具是xshell ...
- 黑马----JAVA泛型基础
黑马程序员:Java培训.Android培训.iOS培训..Net培训 JAVA范型-基础 一.泛型的概念 1.实现了参数化类型 2.用于编写可应用于多种类型的代码,即所编写的代码可应用于许多许多的类 ...
- jekins 持续集成手记
1.安装一个干净Ubuntu14.04桌面版本 2.打开http://jenkins-ci.org/ 官网, 选择use jenkins 中, Installing Jenkins on Ubuntu ...
- JavaScript和Java之间的关系
今天来简单而又详细地说说JavaScript和Java的关系. 开门见山总结性一句话,它们之间的关系 = 雷锋和雷峰塔之间的关系,换句话说:它们之间没什么关系. 但往往有不少初学者甚至中级者认为它们之 ...
- UIView---汇总
视图.绘图.贴图.手势.变形.布局.动画.动力.特效 UIBezierPath.UIGestureRecognizer.CGAffineTransform.frame.bounds.center.tr ...
- Android 中onConfigurationChanged问题
onConfigurationChanged 不生效问题解决方案: 1).首先,需要重写onConfigurationChanged函数 @Override public void onConf ...
- jQuery学习总结
1:jQuery是什么 jQuery是继prototype之后又一个优秀的Javascript框架.它是轻量级的js库,兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, O ...
- 解决msi文件在XP上安装未完成(提示安装程序被中断,未能安装app。需要重新启动该安装程序进行重试)的问题。
如图所示,我利用Visual Studio 2015制作了一个小程序.基于.Net 4.0.用VS的Install扩展,新建Install项目进行打包.打包为.msi文件.该安装文件在已经安装了 .N ...
- encode和decode的区别
$octets = encode("iso-8859-1", $string);把一个串从perl内部格式转为iso-8859-1格式$string = decode(" ...
- Ajax作用、及Ajax函数的编写
关于Ajax 指的是异步 (Asynchronous JavaScript and XML) <异步的javascript和XML> 1. Ajax并非缩写词,而是由Jesse James ...