【Codeforces 98E】 Help Shrek and Donkey 游戏策略神题
from http://www.cnblogs.com/MashiroSky/p/6576398.html
A君有n张牌,B君有m张牌,桌上还有一张反扣着的牌,每张牌都不一样。
每个回合可以做两件事中的一件
- 猜测桌上的牌是什么,猜对则胜,猜败则输。
- 询问对方是否有某张牌,若有则需要将其示出,否则继续游戏。
A和B都很聪明,问A的胜率。
Solution
首先不到最后一刻是不会选择猜桌上的牌的。
假如某一次对方问了一张自己手上没有的牌,就可能会怀疑桌上的牌就是这张。
而询问对方是否有某张牌,我们可以选择询问自己手上有的牌,假如对方相信而去猜测这张牌的话就会输掉,我们称这样的行为作欺骗。
记f(n,m)f(n,m)表示先手有nn张牌,后手有mm张牌,先手的获胜概率。
那么就可以列一个表格,表示先手的选择以及后手的应对。
先手选择猜测对方的牌
- 后手认为先手在猜测,先手获胜的概率是mm+1(1−f(m−1,n))mm+1(1−f(m−1,n))
- 后手认为先手在欺骗,先手获胜的概率是1m+1+mm+1(1−f(m−1,n))1m+1+mm+1(1−f(m−1,n))
先手选择欺骗
- 后手认为先手在猜测,先手获胜的概率是11
- 后手认为先手在欺骗,先手获胜的概率是1−f(m,n−1)1−f(m,n−1)
那么对于先手的任意一个策略,后手会选择最优的策略去使他赢的概率尽可能小。也就是说假如先手用pp的概率选择去猜测,1−p1−p的概率选择去欺骗。那么最终的贡献就是
将pp视为自变量,问题就转化为两条直线取minmin的问题,求个交点就可以得到最大值。
细节
直线的交点别求错了。。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
首先这个思路不太好想
其次在状态转移时,注意先手是可以两种决策随便选,故存在概率;而后手决策无非两种
脑补一下是这样的把。。
【Codeforces 98E】 Help Shrek and Donkey 游戏策略神题的更多相关文章
- 【Codeforces 98E】 Help Shrek and Donkey
http://codeforces.com/problemset/problem/98/E (题目链接) 题意 A君有n张牌,B君有m张牌,桌上还有一张反扣着的牌,每张牌都不一样. 每个回合可以做两件 ...
- 【BZOJ5285】[HNOI2018]寻宝游戏(神仙题)
[BZOJ5285][HNOI2018]寻宝游戏(神仙题) 题面 BZOJ 洛谷 题解 既然是二进制按位的运算,显然按位考虑. 发现这样一个关系,如果是\(or\)的话,只要\(or\ 1\),那么无 ...
- Codeforces Round #519 by Botan Investments(前五题题解)
开个新号打打codeforces(以前那号玩废了),结果就遇到了这么难一套.touristD题用了map,被卡掉了(其实是对cf的评测机过分自信),G题没过, 700多行代码,码力惊人.关键是这次to ...
- [CF98E]Help Shrek and Donkey
题意:A和B两个卡牌大师玩游戏,A有$n$张牌,B有$m$张牌,桌上有$1$张牌,这$n+m+1$张牌互不相同且A和B都知道这些牌里有什么牌(但他们互相不知道对方有什么牌,两个人也都不知道桌上的那张牌 ...
- NIM游戏策略
NIM取子游戏是由两个人面对若干堆硬币(或石子,或..)进行的游戏,游戏由两个人进行,设有k>=1堆硬币,各堆含有n1,n2,n3,n4.....,nk个硬币,游戏的目的就是选取最后剩下的硬币. ...
- [CF98E]Help Shrek and Donkey(纳什均衡)
https://www.cnblogs.com/MashiroSky/p/6576398.html #include<cstdio> #include<algorithm> # ...
- codeforces 705B B. Spider Man(组合游戏)
题目链接: B. Spider Man time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Codeforces 15C Industrial Nim 简单的游戏
主题链接:点击打开链接 意甲冠军: 特定n 下列n行,每一行2的数量u v 表达v礧:u,u+1,u+2···u+v-1 问先手必胜还是后手必胜 思路: 首先依据Nim的博弈结论 把全部数都异或一下, ...
- Codeforces Gym 100650C The Game of Efil 模拟+阅读题
原题链接:http://codeforces.com/gym/100650/attachments/download/3269/20052006-acmicpc-east-central-north- ...
随机推荐
- 修改表的字段顺序(mysql)
ALTER TABLE 表名 CHANGE 字段名 字段名 int not null default 1 AFTER 它前面的字段;
- php异步学习(2)
PHP开启异步多线程执行脚本 场景要求 客户端调用服务器a.php接口,需要执行一个长达5s-20s不等的耗资源操作,但是客户端响应请求时间为5秒(微信公众账号服务器请求响应超时时间),5s以上无 ...
- our team
今天向大家介绍一下我们的团队,首先我们的团队叫“吉祥三宝”当然我们的三宝不是亲子关系,我们是兄弟关系,对,就是这样 下面来介绍一下我们的团队成团吧: 李奇原: 性格开朗.积极乐观.有责任心,擅长团队协 ...
- c# 窗体与窗体外的文件互动(拖拽)
大部分控件都有此事件drag相关. 以picturebox为例: pictureBox1.AllowDrop = true;//此属性需要全打出来,不会自动识别添加 private void pict ...
- 福大软工1816:Beta(3/7)
Beta 冲刺 (3/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 参与开发关键词提醒部分 展示GitHu ...
- Web.config配置configSections学习
文章:c# 配置文件之configSections配置 configSections节点需要位于configuration第一的位置,紧挨configuration. <configuratio ...
- 用javascript代码拼html
公司新来的同事说,他们是用javascript代码拼html代码的,如果要修改值,就是修改对象的属性. 交代下,我们现在都是用拼字符串的方式拼html代码的.他提到如果写在单独的javascript文 ...
- Learn Docker(一)—软件安装与常规操作
一.安装Docker Windows平台 在Windows10 X64专业版上可以直接下载Docker原生应用进行安装,在控制面板的程序与功能里启用Hyper-v,之后就可以运行docker程序啦. ...
- [并查集] More is Better
题目描述 Mr Wang wants some boys to help him with a project. Because the project is rather complex, the ...
- winform 弹出窗体指定位置
在启动一个程序时,我们希望窗口显示的位置处于屏幕的正中心,可以如下设置: MainForm mainForm = new MainForm(); mainForm.StartPosition = Fo ...