摘要: 这个题目是这样的,一堆石子有n个,首先第一个人开始可以去1-(n-1)个,接下来两人轮流取石子,每个人可取的石子数必须是一个不超过上一次被取的石子的K倍的整数。现在求对于一堆数量为n的石子是否为必胜态,如果是的话,先手者第一次最少可以取多少石子?这个题目是一个典型的K倍动态减法游戏。构造两个数列,然后直接判断就好了。至于数列的构造原理,我自己弄得也不是很透彻,等我透彻了再写写吧。对于输出最小的可行解,就是逐步减小并且判断就好了。 1 #include 2 #include 3 #define maxn 5000000 4 using namespace std; 5 6 int a[ma... 阅读全文
posted @ 2013-10-21 17:10 092000 阅读(308) 评论(0) 推荐(0) 编辑