zoukankan      html  css  js  c++  java
  • HDU1846 Brave Game 题解

    题面

    本题是一道有向图博弈问题:

    该题便是著名的巴什博弈;

    我们可以发现,当n=0的时候后手必胜(设其为P态),n=1~m这几种状态由于先手可以一次全部取完导致先手必胜(设其为N态)。

    接着当n=m+1时,因为先手无论取走几个都会使后手一次全部取走导致后手必胜;

    接着当n=m+2~2*m时,因为先手可以一次就将石子取剩m+1个,导致无论后手取几个,最后都会使先手一次全部取完,导致先手必胜。

    ......

    综上所述,不难发现一个人想要获胜就要把对方逼到当对方选择时棋子剩m+1的倍数个,由于先手的先发性,只要n!=(m+1)的倍数,先手就一定可以一次就把石子取到剩(m+1)的倍数个,不断逼使后手一直走必败路线。

    所以当n%(m+1)=0时,后手必胜,否则先手必胜。

    #include <bits/stdc++.h>
    using namespace std;
    int main ()
    {
        int t;
        cin>>t;
        while(t--){
            int n,k;
            scanf("%d%d",&n,&k);
            if(n%(k+1)==0){
                printf("second
    ");
            }
            else{
                printf("first
    ");
            }
        }
    }
  • 相关阅读:
    Ubuntu 17 安装sublime
    ubuntu17 设置python3为默认及一些库的安装
    Java中内存分析(一)
    我的学习JavaEE路线
    我爱学习……
    HDU 4602
    K-special Tables
    Gym 100712A - Who Is The Winner
    UVA 1583
    水题 UVA 1586
  • 原文地址:https://www.cnblogs.com/kamimxr/p/11326846.html
Copyright © 2011-2022 走看看