性质:一个数分解质因数后2的次数=二进制下末尾连续0的个数。

乘2比较好考虑,比较恶心的是+1。一个$k*2^0$的数+1后可能会出现很多情况。但是k这个数表示不出来。

但是加的操作最多有200次,也就是说最多影响二进制下的后8位。根据上述性质,我们把后8为作为状态,统计概率。

但是只有后8位状态的的话还是不可做,再加上第9位状态以及与第九位相同的连续长度来考虑进位。

即f[i][j][s][k]表示i次操作后,后8位为s,第九位为k,有连续j位的概率。

转移少麻烦但还是比较好想的。本题难度在于状态定义。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<bitset>
  5. #define int LL
  6. #define LL long long
  7. using namespace std;
  8. int x,n,p;
  9. double gl1,gl2;
  10. double f[210][255][1<<10][2];
  11. int cnt[1<<10];
  12. signed main()
  13. {
  14. // freopen("in.txt","r",stdin);
  15. // freopen("1.out","w",stdout);
  16.  
  17. cin>>x>>n>>p;
  18. gl1=p/100.0,gl2=(100-p)/100.0;
  19.  
  20. int num=0;
  21. for(int j=0;(((1<<j)&x)==0);j++)num++;
  22. f[0][num>8?num-8:1][x&((1<<8)-1)][(bool)(x&(1<<8))]=1;
  23. // cout<<(num>8?num-8:1)<<" "<<(x&((1<<8)-1))<<" "<<(x&(1<<8))<<endl;
  24. for(int i=0;i<n;i++)
  25. for(int j=1;j<=250;j++)
  26. for(int s=0;s<(1<<8);s++)
  27. {
  28. if(s!=(1<<8)-1)f[i+1][j][s+1][0]+=f[i][j][s][0]*gl2;
  29. else f[i+1][1][0][1] +=f[i][j][s][0]*gl2;
  30. if(s!=(1<<8)-1)f[i+1][j][s+1][1]+=f[i][j][s][1]*gl2;
  31. else f[i+1][j][0][0] +=f[i][j][s][1]*gl2;
  32. bool maxn=s&(1<<7);
  33. f[i+1][maxn==0?j+1:1][(s<<1)&((1<<8)-1)][maxn]+=f[i][j][s][0]*gl1;
  34. f[i+1][maxn==1?j+1:1][(s<<1)&((1<<8)-1)][maxn]+=f[i][j][s][1]*gl1;
  35. }
  36. /* for(int i=0;i<n;i++)
  37. for(int j=1;j<=10;j++)
  38. for(int s=0;s<(1<<8);s++)
  39. cout<<f[i][j][s][0]<<" "<<f[i][j][s][1]<<endl*/
  40.  
  41. for(int i=0;i<(1<<8);i++)
  42. for(int j=0;j<=8&&(((1<<j)&i)==0);j++)cnt[i]++;
  43. double ans=0;
  44. for(int i=1;i<(1<<8);i++)
  45. for(int j=1;j<=250;j++)
  46. ans+=(f[n][j][i][0]+f[n][j][i][1])*cnt[i];
  47. for(int j=1;j<=250;j++)ans+=f[n][j][0][0]*(j+8)+f[n][j][0][1]*8;
  48. printf("%0.10lf\n",ans);
  49. }

HZOJ 简单的期望的更多相关文章

  1. 简单题[期望DP]

    也许更好的阅读体验 \(\mathcal{Description}\) 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌 ...

  2. [CSP-S模拟测试]:简单的期望(DP)

    题目描述 从前有个变量$x$,它的初始值已给出. 你会依次执行$n$次操作,每次操作有$p\%$的概率令$x=x\times 2$,$(100−p)\%$的概率令$x=x+1$. 假设最后得到的值为$ ...

  3. poj 2096 Collecting Bugs (概率dp 天数期望)

    题目链接 题意: 一个人受雇于某公司要找出某个软件的bugs和subcomponents,这个软件一共有n个bugs和s个subcomponents,每次他都能同时随机发现1个bug和1个subcom ...

  4. 【期望DP】

    [总览] [期望dp] 求解达到某一目标的期望花费:因为最终的花费无从知晓(不可能从$\infty$推起),所以期望dp需要倒序求解. 设$f[i][j]$表示在$(i, j)$这个状态实现目标的期望 ...

  5. 2018.08.30 Tyvj1952 Easy(期望dp)

    Description 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连 ...

  6. 【BZOJ4720】【NOIP2016】换教室 [期望DP]

    换教室 Time Limit: 20 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description Input 第一行四个整数n,m,v ...

  7. 【BZOJ3029】守卫者的挑战 [期望DP]

    守卫者的挑战 Time Limit: 2 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 打开了黑魔法师Vani的大门,队 ...

  8. 【BZOJ1419】 Red is good [期望DP]

    Red is good Time Limit: 10 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 桌面上有R张红牌和B张 ...

  9. CF895 E. Eyes Closed(线段树 期望)

    题意 Sol 今天考试的T3,,我本来留了一个小时去写.但是T2一刚就刚了两个小时 最后也没来的及写.. 然后考完 开始写,,25min就A了.. 感觉自己太高估自己的思维,太低估自己的码力了... ...

随机推荐

  1. BigDecimal的四则运算及小数位数格式

    一.加法 BigDecimal b1 = new BigDecimal("20");BigDecimal b2 = new BigDecimal("30");B ...

  2. mybatis深入理解(二)-----Mybatis数据源与连接池

    对于ORM框架而言,数据源的组织是一个非常重要的一部分,这直接影响到框架的性能问题.本文将通过对MyBatis框架的数据源结构进行详尽的分析,并且深入解析MyBatis的连接池.本文首先会讲述MyBa ...

  3. nfs网络共享服务基础

    nfs原理 1.开启RPC服务 2.NFS向RPC服务注册启动的端口 3.用户向RPC询问NFS服务的端口 4.RPC返回端口给客户端 5.客户端通过获得的端口与NFS服务器进行数据传输 实验步骤 一 ...

  4. 获得浏览器User-agent的方法

    在浏览器的地址栏输入(不是全部都能用) javascript:alert(navigator.userAgent); 或者网页中 alert(navigator.userAgent) 或者后台中 St ...

  5. 【同余最短路】【例题集合】洛谷P3403 跳楼机/P2371 墨墨的等式

    接触到的新内容,[同余最短路]. 代码很好写,但思路不好理解. 同余最短路,并不是用同余来跑最短路,而是通过同余来构造某些状态,从而达到优化时间空间复杂度的目的.往往这些状态就是最短路中的点,可以类比 ...

  6. 【react】react-reading-track

    这是一个很有趣的图书阅读demo 先放github地址:https://github.com/onlyhom/react-reading-track 我觉得这个博主的项目很有意思呢 我们一起看看代码啊 ...

  7. Ajax--解析JSON数据与解析XML数据

    一.Ajax解析JSON数据 nav.json(json数据) [ { "link":"http://www.jd.com", "src": ...

  8. 如何解决Firefox浏览器地址栏中文搜索速度很慢

    一.插件安装 之前使用Chrome浏览器,习惯在地址栏中直接进行中文搜索.转到Firefox之后,突然发现在地址栏进行中文搜索,访问速度会很慢. 可以使用插件解决这个问题:Omnibar 插件地址:h ...

  9. SQL Server2008 卸载

    先把SQL Server卸载,再把安装时产生的“Microsoft SQL Server”文件夹删掉,在运行注册表,把HKEY_CURRENT_USER\Software\Microsoft\Micr ...

  10. C++学习笔记----4.4 继承情况下的类作用域嵌套

    引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:如果不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这种类作用域的层次嵌套使我们能够直接访问基类的成员,就好像这些成员 ...