hdu 5996 dingyeye loves stone
2016-12-18 14:36
330 查看
点击打开链接
题意: 给你一个树,两个人做游戏,回合制。
每个回合,一个人能选择一个节点,将该节点的存值像该节点的父亲节点转移,该值>=1 .最终全部转移到0节点,如果没有可操作的价值,即无步可走,lose。
你先走,问你能否赢。
首先这肯定是个nim,暴力来一发吧, TE。。。
那再推推,,树的深度!!, 对啊,偶数深度,先手如果拿一个上去,后手可以模仿先手往上放,那就等于没放。还是原来的局面。
奇数深度则相反。
所以只用对深度为奇数的数nim就好,再来一发,TE。。。。
我是用并查集,每次一个一个找深度为多少,
最后,开了一个数组,dep记录深度,让该点的深度等于该点父节点深度+1,,,,AC
。
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn=100000+10;
int a[maxn],f[maxn],dep[maxn];
int main(){
int T,n;
scanf("%d",&T);
while(T--){
int ans=0;
scanf("%d",&n);
for(int i=1;i<n;i++){
scanf("%d",&f[i]);
dep[i]=dep[f[i]]+1;
}
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=1;i<n;i++){
if(dep[i]&1) ans^=a[i];
}
if(ans) printf("win\n");
else printf("lose\n");
}
return 0;
}
题意: 给你一个树,两个人做游戏,回合制。
每个回合,一个人能选择一个节点,将该节点的存值像该节点的父亲节点转移,该值>=1 .最终全部转移到0节点,如果没有可操作的价值,即无步可走,lose。
你先走,问你能否赢。
首先这肯定是个nim,暴力来一发吧, TE。。。
那再推推,,树的深度!!, 对啊,偶数深度,先手如果拿一个上去,后手可以模仿先手往上放,那就等于没放。还是原来的局面。
奇数深度则相反。
所以只用对深度为奇数的数nim就好,再来一发,TE。。。。
我是用并查集,每次一个一个找深度为多少,
最后,开了一个数组,dep记录深度,让该点的深度等于该点父节点深度+1,,,,AC
。
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn=100000+10;
int a[maxn],f[maxn],dep[maxn];
int main(){
int T,n;
scanf("%d",&T);
while(T--){
int ans=0;
scanf("%d",&n);
for(int i=1;i<n;i++){
scanf("%d",&f[i]);
dep[i]=dep[f[i]]+1;
}
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=1;i<n;i++){
if(dep[i]&1) ans^=a[i];
}
if(ans) printf("win\n");
else printf("lose\n");
}
return 0;
}
相关文章推荐
- HDU 5996 dingyeye loves stone [阶梯Nim]
- HDU 5996 dingyeye loves stone(阶梯尼姆博弈)——BestCoder Round #90
- HDU 5996 dingyeye loves stone (DFS+博弈)
- HDU 5996 BestCoder Round #90 1002 dingyeye loves stone 博弈
- hdu 5996 dingyeye loves stone(博弈)
- 【HDU 5996 dingyeye loves stone】+ 尼姆博弈
- hdu 5996 dingyeye loves stone
- 【hdu 5996】dingyeye loves stone
- HDU 5996 dingyeye loves stone (树形博弈)
- HDU 5996 dingyeye loves stone
- HDU 5996 dingyeye loves stone
- hdu 5996 dingyeye loves stone
- HDU 5996 dingyeye loves stone
- HDU 5996 dingyeye loves stone(Nim 变形)
- hdu 5996 dingyeye loves stone
- 【HDOJ】5996(BestCoder #90 B)dingyeye loves stone
- hdoj 5996 - dingyeye loves stone(阶段博弈)
- hdu5996 dingyeye loves stone
- dingyeye loves stone 尼姆博弈
- dingyeye loves stone(阶梯博弈+vector)