【长郡NOIP2014模拟10.22】搞笑的代码
2017-01-19 21:05
253 查看
Description
在OI界存在着一位传奇选手——QQ,他总是以风格迥异的搞笑代码受世人围观某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据
while 序列长度
Input
一个正整数n,表示需要生成一个n排列Output
一个数表示期望随机次数,保留整数Sample Input
4
Sample Output
8(.333333…)【友情提示】
输出样例的括号里表示答案的小数部分,但实际丌要求输出
数学期望=sigma(概率×权值),本题中为期望随机次数=sigma(概率×随机次数)
Data Constraint
30%数据满足n≤380%数据满足n≤10^7
100%数据满足n≤2^31
Solution
设x为当前到第i位取到可以取的值的期望次数设共有n个数(即输入的n)
x=n−i+1n+i−1n∗(x+1)
化简得
x=nn−i+1=n∗1i
用最右边的等式,把n提出来,答案为
n∗∑i=1n1i
把∑ni=11i每隔107打个表,然后暴力就行了
Code
#include<cstdio> #define ll long long #define fo(i,a,b) for(ll i=a;i<=b;i++) #define db double #define N 10000010 using namespace std; db a[215]={0, 16.695311365860, 17.388458521420, 17.793923621195, 18.081605689480, 18.304749238294, 18.487070793421, 18.641221472058, 18.774752863789, 18.892535898751, 18.997896413853, 19.093206593203, 19.180217969814, 19.260260677167, 19.334368649046, 19.403361520295, 19.467900041224, 19.528524662856, 19.585683076533, 19.639750297657, 19.691043591913, 19.739833755963, 19.786353771490, 19.830805533962, 19.873365148290, 19.914187142727, 19.953407855803, 19.991148183715, 20.027515827820, 20.062607147570, 20.096508699188, 20.129298521957, 20.161047220221, 20.191818878841, 20.221671841946, 20.250659378777, 20.278830255704, 20.306229229854, 20.332897476901, 20.358872963271, 20.384190771223, 20.408883383783, 20.432980935333, 20.456511432715, 20.479500950913, 20.501973806740, 20.523952713435, 20.545458918633, 20.566512327808, 20.587131614990, 20.607334322287, 20.627136949563, 20.646555035402, 20.665603230354, 20.684295363349, 20.702644502000, 20.720663007487, 20.738362584570, 20.755754327267, 20.772848760612, 20.789655878914, 20.806185180852, 20.822445701710, 20.838446043044, 20.854194399999, 20.869698586523, 20.884966058643, 20.900003935996, 20.914819021770, 20.929417821180, 20.943806558622, 20.957991193604, 20.971977435569, 20.985770757692, 20.999376409738, 21.012799430062, 21.026044656803, 21.039116738362, 21.052020143189, 21.064759168959, 21.077337951158, 21.089760471148, 21.102030563733, 21.114151924258, 21.126128115297, 21.137962572937, 21.149658612694, 21.161219435088, 21.172648130905, 21.183947686153, 21.195120986744, 21.206170822925, 21.217099893451, 21.227910809550, 21.238606098661, 21.249188207985, 21.259659507847, 21.270022294877, 21.280278795039, 21.290431166498, 21.300481502347, 21.310431833195, 21.320284129633, 21.330040304574, 21.339702215481, 21.349271666492, 21.358750410442, 21.368140150788, 21.377442543446, 21.386659198546, 21.395791682106, 21.404841517621, 21.413810187600, 21.422699135013, 21.431509764692, 21.440243444657, 21.448901507396, 21.457485251084, 21.465995940748, 21.474434809390, 21.482803059057, 21.491101861869, 21.499332361002, 21.507495671638, 21.515592881867, 21.523625053561, 21.531593223207, 21.539498402711, 21.547341580169, 21.555123720608, 21.562845766699, 21.570508639442, 21.578113238824, 21.585660444456, 21.593151116183, 21.600586094668, 21.607966201962, 21.615292242052, 21.622565001378, 21.629785249349, 21.636953738825, 21.644071206592, 21.651138373812, 21.658155946468, 21.665124615782, 21.672045058624, 21.678917937910, 21.685743902978, 21.692523589961, 21.699257622140, 21.705946610288, 21.712591153005, 21.719191837034, 21.725749237578, 21.732263918597, 21.738736433101, 21.745167323429, 21.751557121526, 21.757906349202, 21.764215518394, 21.770485131405, 21.776715681154, 21.782907651400, 21.789061516973, 21.795177743988, 21.801256790063, 21.807299104517, 21.813305128575, 21.819275295560, 21.825210031078, 21.831109753203, 21.836974872654, 21.842805792963, 21.848602910646, 21.854366615361, 21.860097290068, 21.865795311181, 21.871461048716, 21.877094866432, 21.882697121979, 21.888268167027, 21.893808347401, 21.899318003211, 21.904797468974, 21.910247073740, 21.915667141208, 21.921057989841, 21.926419932981, 21.931753278955, 21.937058331184, 21.942335388283, 21.947584744168, 21.952806688148, 21.958001505023, 21.963169475181, 21.968310874680, 21.973425975345, 21.978515044851, 21.983578346807, 21.988616140835, 21.993628682658, 21.998616224168, 22.003579013508, 22.008517295148, 22.013431309949, 22.018321295242, 22.023187484892, 22.028030109367, 22.032849395801, 22.037645568064, 22.042418846815, 22.047169449573, 22.051897590768, 22.056603481804, 22.061287331115 }; int main() { ll n,n1; scanf("%lld",&n); n1=n/10000000; ll ans1=(ll)a[n1];db ans=a[n1]-ans1; fo(i,n1*10000000+1,n) { ans+=1.0/i; if(ans>1) ans--,ans1++; } printf("%.0lf",(ans+ans1)*(db)n); }
相关文章推荐
- 【长郡NOIP2014模拟10.22】搞笑的代码
- JZOJ 3885. 【长郡NOIP2014模拟10.22】搞笑的代码
- 搞笑的代码【长郡NOIP2014模拟10.22】
- {题解}[jzoj3885]【长郡NOIP2014模拟10.22】搞笑的代码
- JZOJ3885. 【长郡NOIP2014模拟10.22】搞笑的代码
- 【JZOJ3885】【长郡NOIP2014模拟10.22】搞笑的代码
- 【JZOJ3886】【长郡NOIP2014模拟10.22】道路维护
- 【长郡NOIP2014模拟10.22】字符串查询
- 道路维护【长郡NOIP2014模拟10.22】
- 【JZOJ3887】【长郡NOIP2014模拟10.22】字符串查询
- 【长郡NOIP2014模拟10.22】道路维护
- JZOJ 3887. 【长郡NOIP2014模拟10.22】字符串查询
- JZOJ 3886. 【长郡NOIP2014模拟10.22】道路维护
- jzoj3886. 【长郡NOIP2014模拟10.22】道路维护
- 【GDOI2014模拟】服务器 题解+代码
- 【GDOI2014模拟】雨天的尾巴 题解+代码
- 【GDOI2014模拟】网格 题解+代码
- 【GDOI2014模拟】Tree 题解+代码
- 【GDOI2014模拟】Pty爬山 题解+代码