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
  • 相关阅读:
    括号序列
    秘密信息
    大奖赛
    订单
    摆花
    利用spring自己实现观察者模式
    Spring操作mongo排序,限制查询记录数
    Hbse的读写过程
    使用aop记录数据库操作的执行时间
    分享一个关于jackson的Json工具类
  • 原文地址:https://www.cnblogs.com/DOLFAMINGO/p/8349623.html
Copyright © 2011-2022 走看看