19_04_19校内训练[Game]
题意
给出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]的更多相关文章
- [4.14校内训练赛by hzwer]
来自FallDream的博客,未经允许,请勿转载,谢谢. hzwer又出丧题虐人 4道noi.... 很奇怪 每次黄学长出题总有一题我做过了. 嗯题目你们自己看看呗 好难解释 ----- ...
- [2017.4.7校内训练赛by hzwer]
来自FallDream的博客,未经允许,请勿转载,谢谢. 报警啦.......hzwer又出丧题虐人啦..... 4道ctsc...有一道前几天做过了,一道傻逼哈希还wa了十几次,勉强过了3题..我好 ...
- [3.24校内训练赛by hzwer]
来自FallDream的博客,未经允许,请勿转载,谢谢. ----------------------------------------------------------------------- ...
- 19_04_02校内训练[deadline]
题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定.染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的 ...
- 平面图转对偶图&19_03_21校内训练 [Everfeel]
对于每个平面图,都有唯一一个对偶图与之对应.若G‘是平面图G的对偶图,则满足: G'中每一条边的两个节点对应着G中有公共边的面,包括最外部无限大的面. 直观地讲,红色标出来的图就是蓝色标出的图的对偶图 ...
- fzyzojP3979 -- [校内训练20180914]魔法方阵
原题见CF632F https://blog.csdn.net/Steaunk/article/details/80217764 这个比较神仙了 点边转化, 把max硬生生转化成了路径最大值,再考虑所 ...
- fzyzojP3580 -- [校内训练-互测20180315]小基的高智商测试
题目还有一个条件是,x>y的y只会出现一次(每个数直接大于它的只有一个) n<=5000 是[HNOI2015]实验比较 的加强版 g(i,j,k)其实可以递推:g(i,j,k)=g(i- ...
- fzyzojP3372 -- [校内训练20171124]博弈问题
对于每个点都要答案 还是异或 trie树合并石锤了 朴素枚举是O(n^2*17)的 怎么办呢? 我们发现合并的时候,一些部分的trie的子树还是不变的 改变的部分也就是合并的复杂度可以接受 鉴于大部分 ...
- fzyjojP2963 -- [校内训练20161227]疫情控制问题
(题干中的废话已经划去) dp显而易见 收益为负数的可以直接扔掉不管.不要一定更优 子串问题,考虑SAM 建立广义SAM 尝试匹配,匹配到的位置的parent树祖先如果有完整的串,那么可以从这个串转移 ...
随机推荐
- 【题解】Luogu P1344 [USACO4.4]追查坏牛奶Pollutant Control
原题传送门 看到这种题,应该一眼就能知道考的是最小割 没错这题就是如此简单,跑两遍最大流(最小割=最大流),一次边权为题目所给,一次边权为1 还有一种优化,优化后只需跑一次最大流,把每条边的权值改成w ...
- 2.裴波那契(Fibonacci)数列
裴波那契(Fibonacci)数列 f(n)= ⎧⎩⎨0,1,f(n−1)+f(n−2),n =0n =1n>1 求裴波那契数列的第n项.(题目来自剑指offer) 1.递归解法,效率很低的解法 ...
- 读取本地json文件,并转换为dictionary
// 读取本地JSON文件 - (NSDictionary *)readLocalFileWithName:(NSString *)name { // 获取文件路径 NSString *path = ...
- Scrum Meeting 合集
一.Alpha [Alpha]Scrum meeting 1 [Alpha]Scrum meeting 2 [Alpha]Scrum meeting 3 [Alpha]Scrum meeting 4 ...
- JS经典面试题汉诺塔
我爱撸码,撸码使我感到快乐!大家好我是Counter.今天给大家分享的是利用JS将汉诺塔原理实现出来,其实主要是考察一个递归的思想,复杂的问题简单化,汉诺塔应该都知道吧,具体的游戏规则,可以百度查查, ...
- Java基础学习-Random类和Java数组
1.随机数类(Random) package com.denniscui; import java.util.Random; /* * Random:用于产生随机数 * * 使用步骤: * ...
- spring data jpa、Hibernate开启全球唯一UUID设置
spring data jpa.Hibernate开启全球唯一UUID设置 原文链接:https://www.cnblogs.com/blog5277/p/10662079.html 原文作者:博客园 ...
- If嵌套
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- UVA10163 Storage Keepers (动态规划)
$dp[i][j]$表示前$i$个仓库由前$j$个人来守卫能取得的最大安全值: $cost[i][j]$表示前$i$个仓库由前$j$个人来守护在能取得的最大安全值的情况下的最小花费. AC代码 //# ...
- 图片裁剪 cropper.js 上传组件封装 vue
//HTML cropper.js 文档地址: https://github.com/fengyuanchen/cropperjs/blob/master/README.md <template ...