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 就没有必胜策略

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

  • 相关阅读:
    用gethub下载ardupilot的最新源码
    Mavlink协议理解
    Mavlink消息包解析
    Mavlink 协议 理解
    极飞P20农业无人机多机协同作业飞行
    如何下载最新的固件到Pixhawk
    韦东山笔记之用busybox构建根文件系统
    Visual studio 打包程序时添加自定义的系统必备组件
    MFC 编译链接错误:unresolved external symbol
    在Visual studio 2017中使用EF6连接MySQL
  • 原文地址:https://www.cnblogs.com/greenofyu/p/12231945.html
Copyright © 2011-2022 走看看