HDU-6312-Game

Posted angel-demon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU-6312-Game相关的知识,希望对你有一定的参考价值。

题意:

一个集合里有1到n,两个人轮流从中取数,取出一个数的同时这个数的因子也被取走。取走最后一个数者为胜。判断是否先手必胜。

思路:

一道挺有意思的博弈题。一开始在纸上列出了n为1到6的情况,发现都是先手胜。大胆猜测不管n是多少都是先手胜,发现果真如此。求证方法是后来想到的

现在考虑集合中只有2到n的情况下。

假设在这种情况下先手必败,那么在我可以先手取1。1的除数只有1,取走后集合中就是2到n的情况,对方必败;

假设在这种情况下先手必胜,那么我就按照在集合中只有2到n的取法取,1是任何数的除数。当第一次取数的时候被取走,不影响结果,对方依旧必败;

  • 博弈
    Accepted 6312 31MS 1376K 133 B G++
    #include "bits/stdc++.h"
    using namespace std;
    int main() {
        int n;
        while (~scanf("%d", &n)) {
            puts("Yes");
        }
        return 0;
    }

    PS:如果知道别人AC代码的长度大概也可以知道这题的解法了。看到这题AC代码里有九成是小于200B的。这么短的代码能写什么东西,也就一个puts("Yes");了

以上是关于HDU-6312-Game的主要内容,如果未能解决你的问题,请参考以下文章

HDU-6312-Game

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板