题意

给出n,等概率地生成一个1~n的数列。现在有n个人从左到右站成一排,每个人拿有当前数列位置上的数字,并且一开始都不知道数字是多少(但知道n是多少)。从左到右让每个人进行如下选择:

1.选择保留自己的卡片,让所有人知道这个卡片上面的数字,并且走到等待区中。第一个人只能进行该选择。

2.选定等待区中的一个人,将自己的卡片与其交换,然后自己带着交换后的卡片退出游戏。等待区中的那个人会让所有人知道这个卡片上面的数字。

假如每个人都绝顶聪明,都想最大化自己的数字,求出等待区中人数的期望。n≤1E15,保留10位有效数字。

例如:E(2)=1.500000000

一开始的数列为[2,1],一开始所有人不知道自己的数字。第一个人翻开后给所有人看,第二个人会知道自己只会是1,就和第一个人交换卡片,最后第一个人数字为1,第二个人数字为1,等待区中还有1人。

一开始的数列为[1,2],一开始所有人不知道自己的数字。第一个人翻开后给所有人看,第二个人会知道自己是2,不交换,最后第一个人数字为1,第二个人数字为2,等待区中还有2人。


思考

不错的题目。手算n≤3发现是个调和级数,现在来证明。

首先,若等待区最大的数字为k,且数字构成了1~k的排列,下一个必然会走到等待区;否则,下一个会和等待区中最大的数字进行交换。

1.构成了1~k的排列:若和1~k的数字进行交换,那结果必然会小于等于k,而下一个人以及下一个人之后手上的数字显然大于k,所以只会进入等待区。

2.构不成1~k的排列:设最小未出现的数字为p,下一个人的数字为m,有两种情况:

  1.m=p。若进入等待区,不会再有人来与自己交换数字,因此结果不会变优。

  2.m>p。若进入等待区,从最后一个人向前考虑。若一个人知道自己数字不交换会变劣,他必然会选择前面的人进行交换;前面的人知道自己被交换会变劣,就会先和前面的人交换……直到p出现。这样一来,m仍然会被替换为p。

 综上,下一人一定会选择交换。

这样考虑从n-1转移到n。从n-1的排列中插入n,若n在末尾,则有(n-1)!种可能,等待区中的人数会多1;若n不在末尾,原先形成连续的排列在经过n后仍会形成连续的排列,不是连续的排列仍不是连续的排列,对应到了n-1中,则有(n-1)*(n-1)!中可能。

故E(n)=E(n-1)+1/(n),调和级数。

19_04_19校内训练[Game]的更多相关文章

  1. [4.14校内训练赛by hzwer]

    来自FallDream的博客,未经允许,请勿转载,谢谢. hzwer又出丧题虐人 4道noi....        很奇怪 每次黄学长出题总有一题我做过了. 嗯题目你们自己看看呗 好难解释 ----- ...

  2. [2017.4.7校内训练赛by hzwer]

    来自FallDream的博客,未经允许,请勿转载,谢谢. 报警啦.......hzwer又出丧题虐人啦..... 4道ctsc...有一道前几天做过了,一道傻逼哈希还wa了十几次,勉强过了3题..我好 ...

  3. [3.24校内训练赛by hzwer]

    来自FallDream的博客,未经允许,请勿转载,谢谢. ----------------------------------------------------------------------- ...

  4. 19_04_02校内训练[deadline]

    题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定.染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的 ...

  5. 平面图转对偶图&19_03_21校内训练 [Everfeel]

    对于每个平面图,都有唯一一个对偶图与之对应.若G‘是平面图G的对偶图,则满足: G'中每一条边的两个节点对应着G中有公共边的面,包括最外部无限大的面. 直观地讲,红色标出来的图就是蓝色标出的图的对偶图 ...

  6. fzyzojP3979 -- [校内训练20180914]魔法方阵

    原题见CF632F https://blog.csdn.net/Steaunk/article/details/80217764 这个比较神仙了 点边转化, 把max硬生生转化成了路径最大值,再考虑所 ...

  7. fzyzojP3580 -- [校内训练-互测20180315]小基的高智商测试

    题目还有一个条件是,x>y的y只会出现一次(每个数直接大于它的只有一个) n<=5000 是[HNOI2015]实验比较 的加强版 g(i,j,k)其实可以递推:g(i,j,k)=g(i- ...

  8. fzyzojP3372 -- [校内训练20171124]博弈问题

    对于每个点都要答案 还是异或 trie树合并石锤了 朴素枚举是O(n^2*17)的 怎么办呢? 我们发现合并的时候,一些部分的trie的子树还是不变的 改变的部分也就是合并的复杂度可以接受 鉴于大部分 ...

  9. fzyjojP2963 -- [校内训练20161227]疫情控制问题

    (题干中的废话已经划去) dp显而易见 收益为负数的可以直接扔掉不管.不要一定更优 子串问题,考虑SAM 建立广义SAM 尝试匹配,匹配到的位置的parent树祖先如果有完整的串,那么可以从这个串转移 ...

随机推荐

  1. excel VBA动态链接数据库

    最近车间制造部有需求,需要通过excel填写的ID获取数据库中的某个取值.研究了一下VBA,简要记录一下代码,仅供参考. Function GETPMAX(SID As String) As Stri ...

  2. 如何搜索 git 提交记录

    如何搜索 git 提交记录 git log -p --all -G '可通过正则搜索' --pretty=format:'%ci' # 可跨分支搜索 # -S '通过文本搜索' git branch ...

  3. vue的一些随记

    1.vue中在methods等中使用filters中的过滤器 this.$options.filters[filter](...args)

  4. 数据拆分之 垂直拆分 and 水平拆分

    https://mp.weixin.qq.com/s?__biz=MzI1NDQ3MjQxNA==&mid=2247488833&idx=1&sn=4f5fe577521431 ...

  5. Project Euler 345: Matrix Sum

    题目 思路: 将问题转化成最小费用流 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #incl ...

  6. Effective java 系列之更优雅的关闭资源-try-with-resources

    背景: 在Java编程过程中,如果打开了外部资源(文件.数据库连接.网络连接等),我们必须在这些外部资源使用完毕后,手动关闭它们.因为外部资源不由JVM管理,无法享用JVM的垃圾回收机制,如果我们不在 ...

  7. vue版 弹幕

    效果: 下载 优化版下载: https://pan.baidu.com/s/1mvKGwJsBjXd2hvvi5Rp9pA 用法: import barrage from '../components ...

  8. JS中for循环变量作用域

    http://www.cnblogs.com/zhus/p/6513741.html  博主写得很好

  9. bilinear pooling

    一.双线性汇合的计算过程: 第一步,计算Gram 矩阵: 对于一组H×W×D的feature maps,$\boldsymbol{x}_{i} \in \mathbb{R}^{D}$是图像的深度描述, ...

  10. Python3爬虫系列:理论+实验+爬取妹子图实战

    Github: https://github.com/wangy8961/python3-concurrency-pics-02 ,欢迎star 爬虫系列: (1) 理论 Python3爬虫系列01 ...