两个人头顶有一个数,互相猜对面是什么数。谁先猜出来谁赢,头顶的数一定是正整数,且一个人的数另一个人的两倍。

首先,如果某个人是奇数,那么另一个人一定可以推出自己的数字,就是那个人的两倍。

(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(log⁡a)\mathcal{O}(\log a)O(loga),也可以推一下式子再做。

2022CCPC预选赛C Guess(博弈)相关推荐

  1. 2022CCPC威海:A、C、E、G、I、J

    2022CCPC威海:A.C.E.G.I.J 目前这5题让我觉着,威海这场思路倒不是多难,但是代码我觉着很难写,比如c和j. Problem - A - Codeforces 问题解析 题目很怪,看了 ...

  2. POJ1067_取石子游戏_威佐夫博弈

    /* *State: 1067 Accepted 176K 16MS C++ 435B *题目大意: * 威佐夫博弈 *解题思路: * 略. */ #include <iostream> ...

  3. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

  4. BZOJ2275[Coci2010]HRPA——斐波那契博弈

    题目描述 N个石子,A和B轮流取,A先.每个人每次最少取一个,最多不超过上一个人的个数的2倍. 取到最后一个石子的人胜出,如果A要有必胜策略,第一次他至少要取多少个. 输入 第一行给出数字N,N< ...

  5. 博弈最高位POJ 1704(Georgia and Bob-Nim博弈)

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  6. 2016 多校赛3 A 水 B 期望,规律 C 各种博弈 J 物理题,积分 K 暴力,水

    2016 Multi-University Training Contest 3 A - Sqrt Bo 题意:给一个数 n,问n要多少次平方后化为1,如果超过5次输出"TAT". ...

  7. 人类偏好的“可塑性”,从博弈说起

    作者 | 斯图尔特·罗素 来源 | <AI新生> 出品 | AI科技大本营 经济学家通过为人类受试者提供选择来套取他们的偏好.该技术广泛应用于产品设计.营销和交互式电子商务系统中.例如,汽 ...

  8. 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]

    题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...

  9. 博弈入门学习的博客[资源汇总]

    kuangbin的博弈论 kuangbin的博弈论题解 kuangbin博弈论题单 博弈大佬的博客 博弈论题单 分割形博弈 SG函数

  10. codeforces1700数学:E2. Close Tuples (hard version)[组合计数 逆向统计] D. Circle Game[对称博弈考虑对称状态的胜负]

    E2. Close Tuples (hard version) 题目大意: 给定一个长度为n的序列a,给定一个长度为n的序列a,给定一个长度为n的序列a, 要从中挑选一个m元组(ai1,ai2,ai3 ...

最新文章

  1. JavaScript语言基础9
  2. Jedis连接redis
  3. 通过Loadruner对mysql数据库进行增删改查
  4. linux uname 命令 打印系统信息
  5. AlphaGo:人工智能与深度学习
  6. CF1408G:Clusterization Counting(区间dp、克鲁斯卡尔重构树)
  7. setCharacterEncoding 是在request.getParameter获取参数之前 设置request的编码格式 一步到位...
  8. 7.ROBOTS.TXT的SEO优化
  9. 无法定位程序输入点于动态链接库怎么办
  10. 怎么制作linux光盘镜像,linux光盘镜像文件制作攻略
  11. 提取【酷我音乐MP3】外链url完整地址--可用于做背景音乐
  12. 赛程表 (递归调用, 非递归调用)
  13. 地理信息安全在线培训考试系统题库-必对题
  14. [MATLAB]S函数
  15. 致童年,那些年我们逝去的岁月
  16. 微信安卓协议分析笔记
  17. 【微信开发】基于微信公众号的早起签到程序
  18. 对前端的一些粗浅的认识
  19. Vue中登录验证成功后保存token,并每次请求携带并验证token操作
  20. Python应用之植物大战僵尸2-功夫世界BOSS关卡无限刷金币

热门文章

  1. 01读书笔记:《编码》-隐匿在计算机软硬件背后的语言(01-11章)
  2. 全国计算机等级考试 三级网络技术 知识点总结
  3. vue配置代理服务器proxy
  4. redis常用命令收集
  5. 百度地图获取河流_开车旅行少不了地图导航,高德地图和百度地图,你觉得哪个好用?...
  6. 计算机英语读法语音,英语语音朗读技巧
  7. nuxt+tsx项目 class报错
  8. 仿小米通讯录 右侧滑动条与带动画的悬停列表实现(二)
  9. 海量之道之SET模型
  10. CSDN调整图片大小、位置