![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
博弈
GooMaple
这个作者很懒,什么都没留下…
展开
-
HDU 1851 - A Simple Game
巴什博奕和Nimm博弈的组合版。代码如下:#include #include #include #include using namespace std;int main(){#ifdef test freopen("input.txt", "r", stdin);#endif int c, n, m, num; scanf("%d", &c);原创 2013-05-04 15:37:33 · 896 阅读 · 0 评论 -
HDU 2147 - kiki's game
博弈,简单推一下必败点与必胜点,可以看出奇偶规律。代码如下:#include #include #include #include using namespace std;int main(){#ifdef test freopen("input.txt", "r", stdin);#endif int n, m; while(scanf("%d%原创 2013-05-04 12:14:51 · 907 阅读 · 0 评论 -
UVa 10404 - Bachet's Game
类似巴什博奕,先行者要赢,假设先行者必赢的状态为1,必输为0。则其通过集合中存在的数可以达到之前的某个0的状态,则当前状态为1,如果通过所有集合中的数都无法达到之前的某个为0的状态(即:可到达的之前状态全为1),则当前状态为0。因为先行者如果可以达到之前某个为0的状态,则说明其达到前面这个0的状态时它实际对于之前的这个状态来说是个后行者,0代表在之前的这个状态来说是后行者赢,则对现在状态来原创 2013-05-03 22:39:28 · 850 阅读 · 0 评论 -
HDU 2149 - Public Sale
巴什博奕。(1)如果m>n,则先行者第一次取n~m之间任意数都能保证其必胜。(2)如果n%(m+1)==0,则必败。(3)如果n%(m+1)!=0,则第一次先行者必须拿n%(m+1)个,才能保证必胜。代码如下:#include #include #include #include using namespace std;int ways[102];int main(原创 2013-05-04 15:21:57 · 743 阅读 · 0 评论 -
HDU 1850 - Being a Good Boy in Spring Festival
Nimm博弈,需要统计可行方案的个数。代码如下:#include #include #include #include using namespace std;int ways[102];int main(){#ifdef test freopen("input.txt", "r", stdin);#endif int m; while(scanf原创 2013-05-04 14:20:29 · 805 阅读 · 0 评论 -
HDU 1527 - 取石子游戏
裸威佐夫博奕。证明见:http://blog.csdn.net/acm_cxlove/article/details/7854530。代码如下:#include #include #include #include #include using namespace std;double eps = 1e-9;int main(){#ifdef test freop原创 2013-05-04 16:59:16 · 836 阅读 · 0 评论 -
HDU 1849 -Rabbit and Grass
纯Nimm博弈,不过比较难看出来。#include #include #include #include using namespace std;int main(){#ifdef test freopen("input.txt", "r", stdin);#endif int m, n; while(scanf("%d", &m) && m)原创 2013-05-04 16:10:37 · 1094 阅读 · 0 评论 -
HDU 1846 - Brave Game
巴什博奕。代码如下:#include #include #include #include using namespace std;bool ways[1002];int main(){#ifdef test freopen("input.txt", "r", stdin);#endif int c, n, m; scanf("%d", &c);原创 2013-05-04 11:42:06 · 766 阅读 · 0 评论 -
HDU 1907 - John
n堆石子,最后一个取完的人输。Nimm博弈,全是1的时候,特判,数1的个数,奇数输,偶数赢了。证明过程见:http://blog.csdn.net/acm_cxlove/article/details/7854530代码如下:#include #include #include #include using namespace std;int main(){#ifde原创 2013-05-04 16:33:20 · 1574 阅读 · 0 评论 -
HDU 1847 - Good Luck in CET-4 Everybody!
巴什博奕。代码如下:#include #include #include #include using namespace std;bool ways[1002];int vis[10] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512};int main(){#ifdef test freopen("input.txt", "原创 2013-05-04 11:54:26 · 1202 阅读 · 0 评论