首页 > 其他分享 >洛谷CF1738C题解

洛谷CF1738C题解

时间:2023-07-24 20:55:23浏览次数:44  
标签:洛谷 CF1738C 奇数 题解 Alice 偶数 flag Bob mod

好一道博弈论水题

题目传送门
更好的食用体验

题目大意:

给定长度为 $ n $ 的数列 $ a_1, a_2, \dots, a_n $,两名玩家 Alice 、 Bob 依次以最优策略从数列中取走一个数,Alice 先取,直至为空博弈结束。若 Alice 取走的所有数之和为偶,Alice 胜利;若 Alice 取走的所有数之和为奇,Bob 胜利。输入给定序列,请输出必胜玩家。

解法:

推公式:

共识:奇数+奇数=偶数,奇数+偶数=奇数,偶数+偶数=偶数。

统计序列 $ a $ 中偶数 $ a_i $ 和奇数 $ a_i $ 分别出现的次数 $ e $、$ o $,依次可确定下列几种情况,决定二人胜负态:

  1. 当 $ o\mod 4 = 2 $ 时, Bob 存在必胜态:

Bob 仅需保证每次所取数字与 Alice 所取数字奇偶性相同即可,这样可以使二者取走的奇数个数相同。若在此过程中 Alice 取走了最后一个偶数,奇数必然剩余偶个。随后,Alice 和 Bob 各自将选择剩余奇数的一半。最后,Alice 和 Bob 都拥有 $ \frac{o}{2} $个奇数,Alice 和为奇数,Alice 败。

  1. 当 $ o\mod 4 = 3 $ 时, Alice 存在必胜态:

Alice 首先选择一个奇数,若 Bob 能从剩下的数字中取走偶个奇数,则 Bob 胜。从情况 $ 1 $ 中可知,Bob 必败。

  1. 当 $ o\mod 4 = 0 $ 时, Alice 存在必胜态:

Alice 首先选择一个偶数,在随后的操作中,Alice 仅需保证每次所取数字与 Bob 所取数字奇偶性相同即可,这样可以使二者取走的奇数个数相同。若在此过程中偶数被取完,奇数必然剩余偶个。随后,Alice 和 Bob 各自将选择剩余奇数的一半。最后,Alice 和 Bob 都拥有 $ \frac{o}{2} $ 个奇数,Alice 和为偶数,Alice 胜。

  1. 当 $ o\mod 4 = 1 $ 时,先选择奇数的人败:

先选择奇数的人将会导致对手出现情况 3,对手必胜。博弈开始时,如果 $ e $ 为偶即 $ e\mod 2 = 0 $,则 Bob 将会取走最后一个偶数,Alice 败,$ e $ 为奇即 $ e\mod 2 = 1 $,则 Alice 胜。

注意:由于有多组数据,记得清空!我就因为没清空WA了第一个点

附源码:

#include<bits/stdc++.h>
using namespace std;
int t,n,x,cnt1,cnt2;
bool flag;
int main(){
	cin>>t;
	while(t--){
		cin>>n;
		cnt1=0;//多则不清空,提交两行泪
		cnt2=0;
		for(int i=1;i<=n;i++){
			cin>>x;
			if(x%2==1){//判断奇偶
				cnt1++;//奇数
			}
			else{
				cnt2++;//偶数
			}
		}
		flag=0;//多则不清空,提交两行泪
		if(cnt1%4==2){//情况一
			flag=0;//
		}
		else if(cnt1%4==3){//情况二
			flag=1;//
		}
		else if(cnt1%4==0){//情况三
			flag=1;//
		}
		else if(cnt2%2==1){//情况四
			flag=1;//
		}
		cout<<(flag?"Alice":"Bob")<<endl;//1为Alice必胜,反之Bob胜
	}
	return 0;//A了道黄题!
}

标签:洛谷,CF1738C,奇数,题解,Alice,偶数,flag,Bob,mod
From: https://www.cnblogs.com/OIer-QAQ/p/17578331.html

相关文章

  • 【题解】Imbalanced Arrays - Codeforces 1852B
    出处:CodeforcesRound887链接:https://codeforces.com/problemset/problem/1852/B题目大意:给定一个包含\(n\)个非负整数的频次序列\(f\)。构造任意一个等长的整数序列\(b\),要求①\(b\in[-n,n]\)but$b\neq0$②\(b\)中不存在相反数③对于每个坐标\(i\)......
  • 【P8302 题解】
    Solution设\(g(x)\)表示\(x\)的最小质因子。则\(f(x)=n+\dfrac{n}{g(x)}=\dfrac{g(x)+1}{g(x)}\timesn\)。分情况讨论:\(g(x)=2\),经过\(1\)次变换之后,\(f(x)\)增加了一个因子\(3\),减少了一个因子\(2\)。\(g(x)>2\),则满足\(g(x)\nmid2\),否则与最小质因子矛盾,......
  • 【题解】Ntarsis' Set - Codeforces 1852A
    出处:CodeforcesRound887链接:https://codeforces.com/problemset/problem/1852/A题目大意:给定一个包含\(n\)个正整数的表示删除位置的严格升序序列\(p\),以及另外一个连续正整数的被删除的无穷序列\(l\)。进行\(k\)次删除操作,每次操作从无穷序列\(l\)中同时删除位......
  • Codeforces Round 887 (Div. 1) 题解
    https://codeforces.com/contest/1852/problemsA.Ntarsis'Sethttps://codeforces.com/contest/1852/problem/A感觉不是很一眼。\(n\)和\(k\)都是\(2\times10^5\),不能暴力,设当前集合为\({1,2,\dots,10^{1000}}\),那么被操作过一次的最小值就应该是\(\text{MEX}(0,......
  • 国标GB28181视频平台LntonGBS(含源码)国标视频平台播放视频时偶尔出现播放失败的问题解
    LntonGBS是基于公安部推出的安防主流协议(国标GB28181协议)的视频接入、处理及分发平台,具有视频直播监控、云端录像、云存储、检索回放、智能告警、语音对讲等功能,能够涵盖所有监控领域的视频能力需求,已经在大量的项目中落地应用,如明厨亮灶、平安乡村、雪亮工程等。有用户反馈,在某项......
  • 洛谷 T356695 文字处理软件(重置版)
    很简单了啊!说普及-我都不信作者(也就是我)链接:https://www.luogu.com.cn/problem/T356695好好想想!!!!题目!文字处理软件(重置版)题目背景Allow是一名程序员,他要为公司开发一款“文字处理软件”!题目描述用户可能输入∞个数字。说白了用while(1)输入1时,把字符串原样输出。......
  • P7831 题解
    problem&blog。妙妙题。单杀了,来写篇题解。下文中\(ans_u\)表示从\(u\)点出发的答案。考虑直接做。发现更新任何一个点,都可能会对一堆点造成影响,\(O(n^2)\)无法接受。一些简单的性质:不能进入一个环的\(ans_u=-1\)。否则,对于\((u,v,r,p)\),\(r\)是最大的\(r\),那么只......
  • AT_abc218_d 题解
    洛谷链接&Atcoder本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读。题目简述给定一个平面内的\(N\)个点的坐标,求这\(N\)个点中选\(4\)个点可构成正方形的方案数。注:构成的正方形的边需平行于\(x\)轴或\(y\)轴。例如下图就不符合要求,则不考虑这种情况:......
  • AT_abc215_d 题解
    洛谷链接&Atcoder链接本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读。题目简述给定\(N\),\(M\)及含有\(N\)个整数的序列\(A\)。求\(1\simM\)中与所有\(a_i\)均互质的整数及个数。思路首先说一下最开始的想法。直接暴力枚举\(1\simM\)的数,再分......
  • 仪酷LabVIEW AI视觉工具包及开放神经网络交互工具包常见问题解答
    前言哈喽,各位朋友,好久不见~之前给大家分享了基于LabVIEW开发的AI视觉工具包及开放神经网络交互工具包,不少朋友私信说在安装和使用过程中会遇到一些问题,今天我们就集中回复一下大家问到最多的问题。如果大家在使用过程中还有其他问题,可以补充到评论区,我们这篇博文会持续补充更新......