首页 > 其他分享 >Codeforces Global Round 22 C. Even Number Addicts(博弈论)

Codeforces Global Round 22 C. Even Number Addicts(博弈论)

时间:2022-10-03 13:44:25浏览次数:83  
标签:Even 22 奇数 LL Addicts Alice 偶数 Bob 必赢

https://codeforces.com/contest/1738/problem/C

题目大意:

给定n个数字,Alice先手,Bob后手;

拿完之后,Alice数字总和为奇数时Alice获胜,否则Bob获胜。

问我们给定n个数字,双方都足够聪明的情况下,谁会获胜?
input 
4
3
1 3 5
4
1 3 5 7
4
1 2 3 4
4
10 20 30 40
output 
Alice
Alice
Bob
Alice
  • 我们可以想到,Alice作为先手,如果她想要获胜的话,偶数的个数对于她来说其实意义不大,重要的就是奇数个数

  • 当只有1个奇数的时候,只要后面偶数个数是奇数的话,就可以把这一个奇数剩给Bob,这样就是Alice必赢;
    否则偶数个数是偶数个的时候,这前面的这个奇数就成了Alice的了,Bob必赢;

  • 当有两个奇数的时候,无论Alice是先拿奇数还是先拿偶数都会Bob都可以让Alice拿下一个奇数,Bob必赢;

  • 当只有三个奇数的时候,Alice先拿两个奇数,直接Aice必赢;

  • 当有四个奇数的时候,Alice先拿两个,也是Alice必赢;

  • 当有>=五个奇数的时候,我们可以发现和前四种情况是一样的,所以可以采取%4操作

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=2000020;
const int N=200200,M=2002;
int main()
{
    cin.tie(0); cout.tie(0);ios::sync_with_stdio(false);
    LL T=1;
    cin>>T;
    while(T--)
    {
        LL n;
        cin>>n;
        LL ji=0,ou=0;
        for(int i=1;i<=n;i++)
        {
            LL x;
            cin>>x;
            if(x%2) ji++;
            else ou++;
        }
        if(ji%4==2) cout<<"Bob"<<endl;
        else if(ji%4==3||ji%4==0) cout<<"Alice"<<endl;
        else if(ji%4==1)
        {
            if(ou%2) cout<<"Alice"<<endl;
            else cout<<"Bob"<<endl;
        }
    }
    return 0;
}

标签:Even,22,奇数,LL,Addicts,Alice,偶数,Bob,必赢
From: https://www.cnblogs.com/Vivian-0918/p/16750418.html

相关文章

  • Netty 学习(七):NioEventLoop 对应线程的创建和启动源码说明
    Netty学习(七):NioEventLoop对应线程的创建和启动源码说明作者:Grey原文地址:博客园:Netty学习(七):NioEventLoop对应线程的创建和启动源码说明CSDN:Netty学习(七):NioEventLo......
  • YUV420, YUV422, RGB32内存占用
    用R,G,B三原色可以表示所有颜色,每个分量的范围是0-1.我们用一个字节(8bit,2的八次方256)代表一个分量的话,每个分量的范围就是0-255,一个像素有R,G,B三个分量,所以一个像素就占用......
  • 【微信小程序开发】用户头像昵称获取规则调整 2022
    之前通过wx.getUserInfo获取用户的头像、昵称等信息2021年4月调整为通过wx.getUserProfile获取用户的头像、昵称等信息详情请看:https://developers.weixin.qq.com/communit......
  • 2022icpc网络赛
    EAnInterestingSequence题意:请构造一个总和最小,长度为n且首项为k,并且相邻两项的gcd=1的数组,输出数组各项之和。分析:显然对于n的奇数和偶数我们要进行分类讨论,我们......
  • Ubuntu22.04系统安装DeepMind Lab
       ================================================ 1.CMAKE的安装:https://www.cnblogs.com/devilmaycry812839668/p/14943981.html   2.bazel的安......
  • 二进制安装meven、Nexus
    1、二进制安装mevenhttps://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz#清华大学下载地址https://dlcdn.ap......
  • 2022.9.11 2022年全国高中数学联赛A卷加试第二题另解
    二.设整数\(n(n>1)\)恰有\(k\)个互不相同的素因子,记\(n\)的所有正约数之和为\(\sigma(n)\),证明\(\sigma(n)|(2n-k)!\)(\(2022\)年全国高中数学联赛加试第二题)解析思路是很......
  • 22道js输出顺序问题,你能做出几道
    前言最近在准备面试题,console的输出顺序之前一直迷迷糊糊。必备知识JS是单线程的单线程是JavaScript核心特征之一。这意味着,在JS中所有任务都需要排队执行,前一个任......
  • 2022-09-18-事务机制与锁
    事务机制与锁事务ACID特性(4大特性):原子性;一致性;隔离性;持久性。事务隔离性(四大隔离级别):读未提交;读已提交;可重复读;串行。脏读:读到了别的事务还没有提交,可能随时会被回滚......
  • 2022-09-18-事务机制与锁
    事务机制与锁事务ACID特性(4大特性):原子性;一致性;隔离性;持久性。事务隔离性(四大隔离级别):读未提交;读已提交;可重复读;串行。脏读:读到了别的事务还没有提交,可能随时会被回滚......