【JZOJ3885】搞笑的代码
2017-01-20 21:37
246 查看
Description
在OI界存在着一位传奇选手——QQ,他总是以风格迥异的搞笑代码受世人围观某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据
while 序列长度<n do { 随机生成一个整数属亍[1,n] 如果这个数没有出现过则加入序列尾 }
聪明的同学一定发现了,这样生成数据是徆慢的,那么请你告诉QQ,生成一个n排列的期望随机次数
Solution
我们设fi表示已经生成了i个数的期望次数。如果这次随机的数不等于已经生成的i个数,期望次数为:n−in(fi−1+1)
如果随机的数等于生成的数,期望次数为:in(fi+1)
总的就为:fi=n−in(fi−1+1)+in(fi+1)
于是我们可以解出一个fi和fi−1的关系式,为fi=fi−1+nn−i
这样复杂度就是O(n)的。
但是这题n≤231−1,不能接受。
其实,这题求的就是n∑ni=11i,于是我们可以对调和级数∑ni=11i预处理打表。
还可以对于n较大的情况用ln(n)+c去逼近自然数倒数和。
其中c为欧拉常数,约为0.57721566490153286060651209。
证明请自行查阅。
相关文章推荐
- JZOJ 3885. 【长郡NOIP2014模拟10.22】搞笑的代码
- jzoj 3885 搞笑的代码
- 【JZOJ 3885】 搞笑的代码
- 【JZOJ3885】【长郡NOIP2014模拟10.22】搞笑的代码
- {题解}[jzoj3885]【长郡NOIP2014模拟10.22】搞笑的代码
- GreaseMokey 里面搞笑的JavaScript代码
- 超级搞笑38句。哈哈,,,适当放松一下吧,别整天代码啊,代码啊,代码。嘿嘿!
- 【长郡NOIP2014模拟10.22】搞笑的代码
- bzoj1974&jzoj1523 [Sdoi2010]auction 代码拍卖会
- 搞笑的代码【长郡NOIP2014模拟10.22】
- #191. 搞笑的代码
- 搞笑的代码错误
- 判断质数之简短代码(刚学C语言时感觉很简短,结果现在看看,噗~真是搞笑)
- 今天在群里看到有人分享了一段搞笑的注释代码,觉得挺好玩的,
- JZOJ3885. 【长郡NOIP2014模拟10.22】搞笑的代码
- 0.0寒假搞笑作->最强逻辑题的最直观代码实现
- GreaseMokey 里面搞笑的JavaScript代码
- log4j 中 很搞笑的一段代码
- 一段搞笑代码,让网页上所有图片飞起来转圈
- 一段略搞笑的代码