题目

在OI界存在着一位传奇选手——QQ,他总是以风格迥异的搞笑代码受世人围观

某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据

while 序列长度<n do
{
随机生成一个整数属亍[1,n]
如果这个数没有出现过则加入序列尾
}

聪明的同学一定发现了,这样生成数据是徆慢的,那么请你告诉QQ,生成一个n排列的期望随机次数。

分析

相信答案的式子是能推出来的:

\[answer=1+\sum_{i=1}^{n-1}\sum_{g=1}^{\infty}(g*\dfrac{n-i}{n}*(\dfrac{i}{n})^{g-1})
\]

设\(S_i=\sum_{g=0}^{\infty}(\dfrac{n-i}{n}*(\dfrac{i}{n})^{g}),q=\dfrac{i}{n},a=\dfrac{n-i}{n}\)

\[answer=1+\sum_{i=1}^{n-1}\sum_{g=0}^{\infty}(S_iq^g)
\]

等比数列求和\(S=\dfrac{a}{1-q}=1\)

\[answer=1+\sum_{i=1}^{n-1}\sum_{g=0}^{\infty}(q^g)
\]

同样等比数列求和\(answer=1+\sum_{i=1}^{n-1}(\dfrac{n}{n-i})\)

\[answer=\sum_{i=0}^{n-1}(\dfrac{n}{n-i})
\]

\[answer=n\sum_{i=0}^{n-1}(\dfrac{1}{n-i})
\]

接着!!!!

打表:每一千万记录这个区间的和。

#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
const long long maxlongint=2147483647;
const int mo=1000000007;
const long long N=221;
const long long up=10000000;
using namespace std;
double ans;
long long n;
double a[N]=
{
0,16.695311365856710,0.693147155559905,0.405465099774798,0.287682068285136,0.223143548814207,0.182321555127268,0.154150678636781,0.133531391731670,0.117783034961926,0.105360515102263,
0.095310179349784,0.087011376610848,0.080042707353017,0.074107971878989,0.068992871248854,0.064538520929234,0.060624621632608,0.057158413676555,0.054067221124072,0.051293294255972,
0.048790164050384,0.046520015526659,0.044451762472021,0.042559614328216,0.040821994436918,0.039220713076360,0.037740327911611,0.036367644104736,0.035091319749694,0.033901551618210,
0.032789822769226,0.031748698264178,0.030771658619406,0.029852963105116,0.028987536831235,0.028170876927015,0.027398974150577,0.026668247046594,0.025975486369524,0.025317807952237,
0.024692612559884,0.024097551550024,0.023530497382508,0.022989518198272,0.022472855826806,0.021978906694621,0.021506205197838,0.021053409175669,0.020619287181477,0.020202707297111,
0.019802627276572,0.019418085838248,0.019048194952552,0.018692132994678,0.018349138651361,0.018018505486444,0.017699577083736,0.017391742696744,0.017094433344688,0.016807118302258,
0.016529301937549,0.016260520858558,0.016000341333640,0.015748356955739,0.015504186523945,0.015267472119136,0.015037877353233,0.014815085774165,0.014598799410496,0.014388737441747,
0.014184634981896,0.013986241964959,0.013793322122823,0.013605652046522,0.013423020323131,0.013245226741243,0.013072081558809,0.012903404827583,0.012739025769316,0.012578782198948,
0.012422519990840,0.012270092584286,0.012121360524999,0.011976191039544,0.011834457640001,0.011696039756352,0.011560822394393,0.011428695817091,0.011299555247549,0.011173300591884,
0.011049836180480,0.010929070526218,0.010810916098373,0.010695289111028,0.010582109324938,0.010471299861813,0.010362787030177,0.010256500161929,0.010152371458864,0.010050335848451,
0.009950330848217,0.009852296438158,0.009756174940605,0.009661910907069,0.009569451011572,0.009478743950051,0.009389740345430,0.009302392657985,0.009216655100677,0.009132483559102,
0.009049835515823,0.008968669978739,0.008888947413295,0.008810629678273,0.008733679964941,0.008658062739366,0.008583743687707,0.008510689664287,0.008438868642304,0.008368249667015,
0.008298802811252,0.008230499133129,0.008163310635829,0.008097210229340,0.008032171694038,0.007968169646002,0.007905179503989,0.007843177457950,0.007782140439027,0.007722046090929,
0.007662872742633,0.007604599382327,0.007547205632535,0.007490671726352,0.007434978484754,0.007380107294899,0.007326040089390,0.007272759326435,0.007220247970880,0.007168489476043,
0.007117467766331,0.007067167220595,0.007017572656184,0.006968669313665,0.006920442842179,0.006872879285400,0.006825965068070,0.006779686983080,0.006734032179077,0.006688988148559,
0.006644542716461,0.006600684029176,0.006557400544009,0.006514681019072,0.006472514503523,0.006430890328223,0.006389798096729,0.006349227676643,0.006309169191274,0.006269613011630,
0.006230549748695,0.006191970246004,0.006153865572485,0.006116227015566,0.006079046074534,0.006042314454137,0.006006024058408,0.005970166984722,0.005934735518054,0.005899722125449,
0.005865119450678,0.005830920309093,0.005797117682645,0.005763704715089,0.005730674707343,0.005698021113015,0.005665737534072,0.005633817716669,0.005602255547100,0.005571045047903,
0.005540180374081,0.005509655809452,0.005479465763124,0.005449604766080,0.005420067467870,0.005390848633424,0.005361943139948,0.005333345973940,0.005305052228286,0.005277057099451,
0.005249355884766,0.005221943979788,0.005194816875755,0.005167970157107,0.005141399499097,0.005115100665462,0.005089069506176,0.005063301955265,0.005037794028688,0.005012541822288,
0.004987541509797,0.004962789340898,0.004938281639363,0.004914014801222,0.004889985292996,0.004866189649989,0.004842624474615,0.004819286434787,0.004796172262343,0.004773278751518,
0.004750602757469,0.004728141194828,0.004705891036305,0.004683849311329,0.004662013104729,0.004640379555425,0.004618945855228,0.004597709247572,0.004576667026364,0.004555816534823
};
int main()
{
scanf("%lld",&n);
for(long long i=1;i<=220;i++)
{
if(i*up>=n)
{
for(long long j=(i-1)*up+1;j<=n;j++) ans+=1.0/j;
printf("%.0lf",ans*n);
return 0;
}
else
ans+=a[i];
}
}

【长郡NOIP2014模拟10.22】搞笑的代码的更多相关文章

  1. 【JZOJ3885】【长郡NOIP2014模拟10.22】搞笑的代码

    ok 在OI界存在着一位传奇选手--QQ,他总是以风格迥异的搞笑代码受世人围观 某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据 while 序列长度<n do { 随机生成一个整数属 ...

  2. 【JZOJ3887】【长郡NOIP2014模拟10.22】字符串查询

    haf 给定n个字符串和q个询问 每次询问在这n个字符串中,有多少个字符串同时满足 1. 字符串a是它的前缀 2. 字符串b是它的后缀 100%数据满足n,q≤50000,字符串长度丌超过100,任意 ...

  3. 【JZOJ3886】【长郡NOIP2014模拟10.22】道路维护

    CCC 最近徆多人投诉说C国的道路破损程度太大,以至亍无法通行 C国的政府徆重视这件事,但是最近财政有点紧,丌可能将所有的道路都进行维护,所以他们决定按照下述方案进行维护 将C国抽象成一个无向图,定义 ...

  4. [NOIP2015模拟10.22] 最大子矩阵 解题报告(单调栈)

    Description 我们将矩阵A中位于第i行第j列的元素记作A[i,j].一个矩阵A是酷的仅当它满足下面的条件:       A[1,1]+A[r,s]<=A[1,s]+A[r,1](r,s ...

  5. [NOIP2015模拟10.22] 最小代价 解题报告 (最小生成树)

    Description 给出一幅由n个点m条边构成的无向带权图.其中有些点是黑点,其他点是白点.现在每个白点都要与他距离最近的黑点通过最短路连接(如果有很多个黑点,可以选取其中任意一个),我们想要使得 ...

  6. 【NOIP2014模拟10.25A组】画矩形

    题目 分析 由于要求按时间顺序来操作,考虑整体二分: 对于一段二分出来的区间,将左区间的修改和右区间的查询取出来,每次更新每个查询的答案,正确性显然. 现在有一对修改和查询的操作(保证所有的查询都在修 ...

  7. 【NOIP2015模拟10.22】最小代价

    前言 本来在比赛上就想到最小生成树了,但不相信这道题那么简单,然后就没有然后了... 题目 给出一幅由n个点m条边构成的无向带权图. 其中有些点是黑点,其他点是白点. 现在每个白点都要与他距离最近的黑 ...

  8. 3896. 【NOIP2014模拟10.26】战争游戏

    鉴于如此一道恶心的题,作者还花了一个晚上草草学了tarjan. 于是乎,这道题就是道tarjan 具体怎么实现呢?正解上有个什么树形DP,看的我一脸懵逼. 这道题可以运用到tarjan一个高科技的算法 ...

  9. JZOJ 4269. 【NOIP2015模拟10.27】挑竹签

    4269. [NOIP2015模拟10.27]挑竹签 (File IO): input:mikado.in output:mikado.out Time Limits: 1000 ms  Memory ...

随机推荐

  1. JSP指令标签、动作标签

    JSP有三大指令: * page指令   * include指令   * taglib指令    在JSP中没有任何指令是必须的!!! 但基本上每个JSP都是使用page指令! page指令 page ...

  2. Message Unable to compile class for JSP

    使用 UniEAPWorkshop_5.0运行4.6 的代码,流程新建时出现的错误 JDK 使用C:\Program Files (x86)\Java\jdk1.7.0_80 tomcat使用 apa ...

  3. Golang基础(5):Go语言反射规则

    Go语言反射规则 - The Laws of Reflection 转:http://my.oschina.net/qbit/blog/213720 原文地址:http://blog.golang.o ...

  4. SQL注入(bool型)

    sqli-labs 靶场https://blog.csdn.net/qq_41420747/article/details/81836327 教程+靶场 1. https://blog.csdn.ne ...

  5. selenium学习-模拟键盘按键操作

    导入  from selenium.webdriver.common.keys import Keys  格式:Keys.XXX 一般这么用:send_keys(Keys.XXX) # coding= ...

  6. python 并发编程 进程池与线程池

    一 进程池与线程池 1.为什么需要进程池和线程池 基于多进程或多线程实现并发的套接字通信,然而这种实现方式的致命缺陷是: 服务端的程序运行在一台机器身上,一台机器性能是有极限的,不能无限开线程 服务的 ...

  7. 红帽学习笔记[RHCSA] 第十课[计划任务Cron与At、逻辑卷管理]

    计划任务[At & Cron Jobs] at # at 命令只能计划一次性任务但是比较方便. # 先输入时间 [root@localhost Desktop]# at 10:02 # 输入要 ...

  8. 小程序图片预览 wx.previewImage

      list: [ 'http://img5.imgtn.bdimg.com/it/u=3300305952,1328708913&fm=26&gp=0.jpg', 'http://i ...

  9. [转帖]目标管理的S.M.A.R.T.理念

    目标管理的S.M.A.R.T.理念 https://blog.csdn.net/gehantao/article/details/1593510     目标管理(MBO)是一种管理战略,它使用的是S ...

  10. MLS(移动最小二乘)

    https://blog.csdn.net/weixin_41484240/article/details/81204113 https://blog.csdn.net/baidu_38127162/ ...