ARC078 D.Fennec VS. Snuke(树上博弈)】的更多相关文章

题目大意: 给定一棵n个结点的树 一开始黑方占据1号结点,白方占据n号结点 其他结点都没有颜色 每次黑方可以选择黑色结点临近的未染色结点,染成黑色 白方同理. 最后谁不能走谁输. 题解: 其实简单想想就可以想明白. 黑方肯定要往通往白方的最短路延伸,白方也是这样. 因为这样每次你可以最大化可行动次数. 所以先以1为根,dfs一遍,然后找到路径. 模拟一下走路径的过程,路径走光了就比谁的可行动次数多(有点像围棋的气的感觉),输出结果就可以了 #include <iostream> #includ…
题目链接 该题实质上是一个树上博弈的问题.要定义四种状态--2先手必胜 1先手必败 3可输可赢 0不能控制 叶子结点为先手必胜态: 若某结点的所有儿子都是先手必败态,则该结点为先手必胜态: 若某结点的所有儿子都是先手必胜态,则该结点为先手必败态: 若某结点的儿子既有先手必胜态,又有先手必败态,或者是存在不能控制态,则该状态为可输可赢: 若某结点的所有儿子都是可输可赢态,则该结点为不能控制态. 若某结点的儿子除了可输可赢态外还有其他状态,那么就当可输可赢态不存在.因为,不能将主导权交给对手. #i…
AtCoder Regular Contest 078 D - Fennec VS. Snuke 题意 给一个树,1是白色,n是黑色,其它没有颜色.Fennec每次可以染白色点的直接邻居为白色.Snuke则染黑色点的邻居为黑色.谁先不能动就输了.问谁赢. 题解 先找出1到n的唯一路径path[1..len],然后Fennec可以依次取1到len/2的点及其不在路径上的孩子.剩下的就是Snuke的.谁多就谁赢了. 代码 #include <cstdio> #define N 100005 int…
Fennec VS. Snuke Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement Fennec and Snuke are playing a board game. On the board, there are N cells numbered 1 through N, and N−1 roads, each connecting two cells. Cell ai is adjac…
题目描述 Fennec and Snuke are playing a board game.On the board, there are N cells numbered 1 through N, and N−1 roads, each connecting two cells. Cell ai is adjacent to Cell bi through the i-th road. Every cell can be reached from every other cell by re…
D - Fennec VS. Snuke Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement Fennec and Snuke are playing a board game. On the board, there are N cells numbered 1 through N, and N−1 roads, each connecting two cells. Cell ai is a…
题目链接 该题实质上是一个树上博弈的问题.要定义四种状态——2先手必胜 1先手必败 3可输可赢 0不能控制 叶子结点为先手必败态: 若某结点的所有儿子都是先手必败态,则该结点为先手必胜态: 若某结点的所有儿子都是先手必胜态,则该结点为先手必败态: 若某结点的儿子既有先手必胜态,又有先手必败态,或者是存在不能控制态,则该状态为可输可赢: 若某结点的所有儿子都是可输可赢态,则该结点为不能控制态. 若某结点的儿子除了可输可赢态外还有其他状态,那么就当可输可赢态不存在.因为,不能将主导权交给对手. #i…
题目描述 Fennec and Snuke are playing a board game. On the board, there are N cells numbered 1 through N, and N−1 roads, each connecting two cells. Cell ai is adjacent to Cell bi through the i-th road. Every cell can be reached from every other cell by r…
描述 小Hi和小Ho经常一起结对编程,他们通过各种对弈游戏决定谁担任Driver谁担任Observer. 今天他们的对弈是在一棵有根树 T 上进行的.小Hi和小Ho轮流进行删除操作,其中小Hi先手. 游戏的规则是:每次删除,小Hi或小Ho都可以选择一个非根节点,将以该节点为根的子树从 T 中删除.如果删除之后 T 只剩下一个根节点,则该次操作者胜利. 机智的小Ho认为规则对自己不利,于是他提出了一个补充规则:在小Hi第一次删除之前,小Ho可以选择是否删除根节点.如果他选择删除根节点,则原本的有根…
就是阶梯NIM博弈,那么看层数是不是奇数的异或就行了: #include<iostream> #include<cstdio> #include<algorithm> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include<map> #include<set> #include<vector&g…