题目

在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. Linux进程: task_struct结构体成员

    一:简介 为了管理进程,内核必须对每个进程所做的事情进行清除的描叙. 比如:内核必须知道进程优先级,他是正在CPU上运行还是因为某些事件被阻塞了,给它分配了什么样的地址空间,允许它访问哪个文件等等.这 ...

  2. 爬虫4之pyquery

    pyquery 初始化 字符串初始化 from pyquery import PyQuery as pq doc = pq(html)#html为需要处理的内容 #方法与CSS选择器相同 print( ...

  3. 20191209 Linux就该这么学(1-3)

    1. 部署虚拟环境安装 Linux 系统 RPM 是为了简化安装的复杂度,而 Yum软件仓库是为了解决软件包之间的依赖关系. 2. 新手必须掌握的Linux命令 通常来讲,计算机硬件是由运算器.控制器 ...

  4. 如何在CBV中使用装饰器

    要区分函数装饰器和方法装饰器得区别 ,方法装饰器得第一个参数是self本身,所以函数装饰器不能用

  5. N76E003双串口无法进UART1中断问题解决办法

    最近在做有关N76E003的项目,使用到双串口.串口的配置没有特殊要求,最基本的配置 void Uart0_Init(void) { //—————————串口0引脚初始化———————— set_P ...

  6. spring boot-1.简单介绍及环境搭建

    1.简介 spring boot 是在spring 基础上进行了全面整合的架构,个人认为优点在于以下几点: 1.简化配置,甚至零配置即可开发出一个web应用.spring boot 默认配置了大量的s ...

  7. [转帖]Linux网络管理员不得不了解的系统目录/proc/sys/net/(网络配置)

    Linux网络管理员不得不了解的系统目录/proc/sys/net/(网络配置) https://blog.csdn.net/u013485792/article/details/76416836 需 ...

  8. 【转帖】国产x86处理器KX-6000发布

    国产最先进x86处理器KX-6000发布:8核3.0GHz 力压酷睿i5处理器 https://www.cnbeta.com/articles/tech/858981.htm 全网所有的网页都写错了 ...

  9. Tomcat配置:java.lang.UnsatisfiedLinkError: D:\DevelopTool\tool20150402\tomcat\apache-tomcat-8.5.16\bin\tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform

    解决办法: tomcat启动时提示java.lang.UnsatisfiedLinkError: D:\soft\devTool\apache-tomcat-7.0.57\bin\tcnative-1 ...

  10. 怎么编写properties文件

    1. 注释 在properties中注释是采用#号开头的方式来进行注释的 2. 编写properties文件 在properties中,一行就是一个键值对,简单的理解就是一行可以保存一个变量,键和值之 ...