zoukankan      html  css  js  c++  java
  • P1288 取数游戏(博弈论)

    转载自https://blog.csdn.net/Brian_Pan_/article/details/103860752

    可以把环想象成两条路,如果没有天生的0,那两条路就是一样的(如果有的话,就两个方向跑一遍,奇数个非零alice必胜)

    如果是偶数个的话,就没有必胜的策略了,只能根据bob所走的选择我们Alice最优的方案(不是我们考虑的范围)

     1 #include<iostream>
     2 using namespace std;
     3 const int N=30;
     4 int a[N];
     5 int main(void)
     6 {
     7     int n;
     8     cin>>n;
     9     for(int i=1;i<=n;i++)
    10     {
    11         cin>>a[i];
    12     }
    13     int ans1=0;
    14     for(int i=1;i<=n;i++)
    15     {
    16         if(a[i])
    17             ans1++;
    18     }
    19     int ans2=0;
    20     for(int i=n;i>=1;i--)
    21     {
    22         if(a[i])
    23             ans2++;
    24     }
    25     if(ans1&1||ans2&1)
    26         cout<<"YES"<<endl;
    27     else
    28         cout<<"NO"<<endl;
    29     return 0;
    30 }

    我们可以把这个环想象成两条路,如果路的尽头没有边权为 0

    0 的边,那么两条路径就是一样的。

    我们可以把这个环想象成两条路,如果路的尽头没有边权为 0

    0 的边,那么两条路径就是一样的。

    对于一条路径,设 Alice

    Alice 为先手,那么她将她走过的路径边权变为 00。轮到 BobBob 时,他最多也只能有一条路可以走。如果他选择不将该路边权变为 00,下一步 AliceAlice 一折返他就输了。如果他将边权变为 00,那么就变成重复以上操作了
    最后如果路径长度为奇数,AliceAlice 还是赢;路径长为偶数的话 Alice

    Alice 就没有必胜策略

    这样这题就被转化成判断两条路径奇偶性了

  • 相关阅读:
    Python机器学习-分类
    Python2.x和Python3.x的区别
    cut命令
    uniq 命令
    sort命令
    KMP算法
    Trie树
    做10年Windows程序员与做10年Linux程序员的区别
    c语言内存模型
    C语言的一个关键字——static
  • 原文地址:https://www.cnblogs.com/greenofyu/p/12231945.html
Copyright © 2011-2022 走看看