2022CCPC预选赛C Guess(博弈)
两个人头顶有一个数,互相猜对面是什么数。谁先猜出来谁赢,头顶的数一定是正整数,且一个人的数另一个人的两倍。
首先,如果某个人是奇数,那么另一个人一定可以推出自己的数字,就是那个人的两倍。
即
(12):11(21):10(1\quad2) : 1\quad1 \\ (2\quad1) : 1\quad0 (12):11(21):10
接下来,如果两人头顶的数字是(42)(4\quad2)(42)。①那么A会先说“不知道”,因为他不能确定自己头顶是111还是444。②既然A说“不知道”,那B就可以推知自己上不是奇数。看到A是444,还是不能确定自己是222还是888。③轮到A,A接受到B的“不知道”信息后,便可以知道B看到自己头上不是一个奇数(如果A头上是奇数,那B是可以知道自己是多少的),那在111和444中除去了111,A就可以知道自己是444了。综上,A在第二轮获胜。
再有如果,A头顶是2,B头顶是4。①A是无法确定的,自己可能为2或8。②轮到B,B本来的可能有1或4。A说“不知道”,那B头上一定不是奇数,现在就是有4是可能的了。综上B在第一轮获胜。
(42):20(24):11(4\quad2) : 2\quad0 \\ (2\quad4) : 1\quad1 (42):20(24):11
继续理清这个问题,如果是(84)(8\quad4)(84)。①首先A只能知道自己是222或888。②B可以是444或者161616,它也不知道。③A从B的“不知道”中可以推出,自己头顶上不可能是2。因为如果它头顶上是222(B知道自己要么1要么4),而第一轮时A说“不知道”(说明B不是一个奇数),B就足够猜出自己是444了(在111和444中排除了111)。既然B没有猜出来,那A它就不是222,而是888。综上,A在第二轮获胜。
仔细思考刚刚这个问题会发现,出现了嵌套的问题了。A看到B头顶是4,它便可以知道自己是222记为(24)(2\quad4)(24)或者8记为(84)(8\quad4)(84)。然后B说不知道。第二轮时,由于如果是情况(24)(2\quad4)(24),那B在第一轮就应该知道自己是多少了,然而他并不知道,所以只能是情况(84)(8\quad4)(84)。
类似地,如果是情况(816)(8\quad16)(816),A在第二轮的时候并不能得出什么有用结论。而B在此时正在纠结是(84)(8\quad4)(84)还是(816)(8\quad16)(816),由于A此时不知道,所以排除掉(84)(8\quad4)(84),他就可以知道是(816)(8\quad16)(816)。
所以得出了一条链的答案
(21):10(24):11(84):20(816):21(3216):30(3264):31⋯:⋯(2\quad1) : 1\quad0 \\ (2\quad4) : 1\quad1 \\ (8\quad4) : 2\quad0 \\ (8\quad16) : 2\quad1 \\ (32\quad16) : 3\quad0 \\ (32\quad64) : 3\quad1 \\ \cdots\qquad:\ \ \cdots (21):10(24):11(84):20(816):21(3216):30(3264):31⋯: ⋯
这样其实就已经可以开始模拟了。
另外一条链也是类似的。
然后可以模拟这个过程O(loga)\mathcal{O}(\log a)O(loga),也可以推一下式子再做。
2022CCPC预选赛C Guess(博弈)相关推荐
- 2022CCPC威海:A、C、E、G、I、J
2022CCPC威海:A.C.E.G.I.J 目前这5题让我觉着,威海这场思路倒不是多难,但是代码我觉着很难写,比如c和j. Problem - A - Codeforces 问题解析 题目很怪,看了 ...
- POJ1067_取石子游戏_威佐夫博弈
/* *State: 1067 Accepted 176K 16MS C++ 435B *题目大意: * 威佐夫博弈 *解题思路: * 略. */ #include <iostream> ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
- BZOJ2275[Coci2010]HRPA——斐波那契博弈
题目描述 N个石子,A和B轮流取,A先.每个人每次最少取一个,最多不超过上一个人的个数的2倍. 取到最后一个石子的人胜出,如果A要有必胜策略,第一次他至少要取多少个. 输入 第一行给出数字N,N< ...
- 博弈最高位POJ 1704(Georgia and Bob-Nim博弈)
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 Georgia and Bob Time Limit: 1000MS Memory Limit: 10000K Total Su ...
- 2016 多校赛3 A 水 B 期望,规律 C 各种博弈 J 物理题,积分 K 暴力,水
2016 Multi-University Training Contest 3 A - Sqrt Bo 题意:给一个数 n,问n要多少次平方后化为1,如果超过5次输出"TAT". ...
- 人类偏好的“可塑性”,从博弈说起
作者 | 斯图尔特·罗素 来源 | <AI新生> 出品 | AI科技大本营 经济学家通过为人类受试者提供选择来套取他们的偏好.该技术广泛应用于产品设计.营销和交互式电子商务系统中.例如,汽 ...
- 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]
题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...
- 博弈入门学习的博客[资源汇总]
kuangbin的博弈论 kuangbin的博弈论题解 kuangbin博弈论题单 博弈大佬的博客 博弈论题单 分割形博弈 SG函数
- codeforces1700数学:E2. Close Tuples (hard version)[组合计数 逆向统计] D. Circle Game[对称博弈考虑对称状态的胜负]
E2. Close Tuples (hard version) 题目大意: 给定一个长度为n的序列a,给定一个长度为n的序列a,给定一个长度为n的序列a, 要从中挑选一个m元组(ai1,ai2,ai3 ...
最新文章
- JavaScript语言基础9
- Jedis连接redis
- 通过Loadruner对mysql数据库进行增删改查
- linux uname 命令 打印系统信息
- AlphaGo:人工智能与深度学习
- CF1408G:Clusterization Counting(区间dp、克鲁斯卡尔重构树)
- setCharacterEncoding 是在request.getParameter获取参数之前 设置request的编码格式 一步到位...
- 7.ROBOTS.TXT的SEO优化
- 无法定位程序输入点于动态链接库怎么办
- 怎么制作linux光盘镜像,linux光盘镜像文件制作攻略
- 提取【酷我音乐MP3】外链url完整地址--可用于做背景音乐
- 赛程表 (递归调用, 非递归调用)
- 地理信息安全在线培训考试系统题库-必对题
- [MATLAB]S函数
- 致童年,那些年我们逝去的岁月
- 微信安卓协议分析笔记
- 【微信开发】基于微信公众号的早起签到程序
- 对前端的一些粗浅的认识
- Vue中登录验证成功后保存token,并每次请求携带并验证token操作
- Python应用之植物大战僵尸2-功夫世界BOSS关卡无限刷金币