zoukankan      html  css  js  c++  java
  • UVA11892 ENimEN —— 博弈

    题目链接:https://vjudge.net/problem/UVA-11892

    题意:

    两人玩游戏,有n堆石子,每堆有ai块石子,两人轮流取,要求一次只能选择一堆石子取任意块。最后取完的获胜。

    题解:

    由于一堆石子可以取任意块,所以得出一个结论:当存在一堆石子数量大于1时,先手必胜。因为先手可以通过这些石子堆来调整自己的必胜状态(或者说取消对手的必胜状态)。但如果每堆石子只有一块,那就每次只能取一块,那结果显而易见了。

    代码如下:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <vector>
     6 #include <cmath>
     7 #include <queue>
     8 #include <stack>
     9 #include <map>
    10 #include <string>
    11 #include <set>
    12 using namespace std;
    13 typedef long long LL;
    14 const int INF = 2e9;
    15 const LL LNF = 9e18;
    16 const int MOD = 1e9+7;
    17 const int MAXN = 20+10;
    18 
    19 int main()
    20 {
    21     int T, n;
    22     scanf("%d", &T);
    23     while(T--)
    24     {
    25         bool win = false;
    26         scanf("%d", &n);
    27         for(int i = 1; i<=n; i++)
    28         {
    29             int a;
    30             scanf("%d", &a);
    31             if(a>1) win = true;
    32         }
    33 
    34         if(win || n%2) puts("poopi");
    35         else puts("piloop");
    36     }
    37 }
    View Code
  • 相关阅读:
    java实现还款计算
    java实现风险度量
    java实现字符串比较
    java实现风险度量
    java实现风险度量
    java实现还款计算
    java实现还款计算
    java实现字符串比较
    java实现字符串比较
    java实现风险度量
  • 原文地址:https://www.cnblogs.com/DOLFAMINGO/p/8349623.html
Copyright © 2011-2022 走看看