随笔分类 - -----博弈 5.其他博弈
摘要:题目链接:hdu 4778 Gems Fight! 题意: 有B个袋子,每个袋子里有一些小球,每个小球有一个颜色,现在Alice和Bob轮流选袋子。 每次选一个袋子,并将袋子里的小球放进锅里,如果锅里的相同颜色的小球个数大于等于S,那么当前选袋子的人 就会得到一个由这S个融合而成的魔法宝石(每次可以
阅读全文
摘要:题目链接:hdu 6015 Gameia 题意: 给出一棵树,Alice 和 Bob 轮流操作, Alice先手, Alice的操作是选一个未染色的点将其染成白色,Bob的操作是选一个未染色的点将其染成黑色,并且和这个点有直连边的点也被强制染成黑色(无论这些直连点之前是否有颜色),Bob还有一个小技
阅读全文
摘要:题目链接:hdu 1760 A New Tetris Game 题意: 给你一个矩阵,0表示可以放格子,现在给你2*2的格子,lele先放,问是否能赢。 题解: 爆搜。具体看代码 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=
阅读全文
摘要:题目链接:hdu 5996 dingyeye loves stone 题意: 给你一棵树,树的每一个节点有a[i]个石子,每个人可以将这个节点的石子移向它的父亲,如果没有合法操作,那么就算输,现在给你当前的局面,问你能否赢 题解: 设根节点的深度为0,将所有深度为奇数的节点的石子数目xor起来,则先
阅读全文
摘要:题目链接:hdu_5963_朋友 题意: 中文,不解释 题解: 把样例拿出来看看,你会发现以x为节点是否能赢,就是与x相连的边权值的和或者异或是否为奇数。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++) 3 usi
阅读全文
摘要:题目链接:hdu_5795_A Simple Nim 题意: 有N堆石子,你可以取每堆的1-m个,也可以将这堆石子分成3堆,问你先手输还是赢 题解: 打表找规律可得: sg[0]=0 当x=8k+7时sg[x]=8k+8, 当x=8k+8时sg[x]=8k+7, 其余时候sg[x]=x;(k>=0)
阅读全文
摘要:题目链接:hdu_5754_Life Winner Bo 题意: 一个棋盘,有国王,车,马,皇后四种棋子,bo先手,都最优策略,问你赢的人,如果双方都不能赢就输出D 题解: 全部都可以直接推公式, 这里我推出前两种比较简单的,后面的模拟打个表就行了 1 #include<bits/stdc++.h>
阅读全文
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2147 题意:给你一个矩阵,从右上走到左下,每次只能向左或向下或向斜下走一格,先走到最后一格的会输,问kiki是否能赢 题解:模拟博弈或者找规律都行,这里我找规律了,一行解决问题 1 #include<c
阅读全文