zoukankan      html  css  js  c++  java
  • 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");了

  • 相关阅读:
    常见的灰度发布系统规则
    golang中的路由分组
    艾森豪威尔矩阵
    列文定理
    吃狗粮定理
    mysql事务 锁
    mysql中explain优化分析
    mysql hash索引优化
    各种浏览器内核介绍
    浏览器 兼容性问题总结
  • 原文地址:https://www.cnblogs.com/Angel-Demon/p/10420890.html
Copyright © 2011-2022 走看看