并不难,只是和期望概率dp结合了一下.
稍作推断就可以发现加密与不加密是两个互相独立的问题,这个时候我们分开算就好了.
对于加密,我们按位统计和就好了;对于不加密,我们先假设所有数都找到了他能找到的最好的匹配(就是异或后为二进制最高位与n-1相等的最大数)并且算出其异或后的总和,然后我们按位贪心,带着所有的数(一开始我们假设所有的数是小于等于二进制最高位与n-1相等的最大数的所有数)从高位走向低位,每走一步,如果这一位是0,就会导致一半的数在这一位不能是1,减去这一半的数在这一位上的贡献,如果这一位是1,就意味着一半的数往后一定会全部是1,我们把这一半数从我们带着的数中减去,另一半待定(留下).
这样思路清晰,实现简易,只是一定注意贡献不要统计错.

#include <cstdio>
typedef double db;
typedef long long LL;
LL f,bin[61],n,temp;
db ans1,ans2,p;
int digit[61],bit,i,j;
int main(){scanf("%lld%lf",&n,&p),bin[0]=1,temp=--n;//我的代码需要的是n-1while(temp)digit[++bit]=temp&1,temp>>=1,bin[bit]=bin[bit-1]<<1;for(i=bit;i>0;--i){f=temp;if(digit[i])f+=(n&(bin[i-1]-1))+1,temp+=bin[i-2];//这一位如果是1的话,对后面都有贡献,所以要累加tempans1+=(db)f*(n-f+1)*2.*bin[i-1];}ans1=ans1/(n+1.)/(n+1.);ans2=(db)(n+1.)*(bin[bit]-1);temp=bin[bit]; for(i=bit;i>0;--i)if(digit[i]&1)temp>>=1;else ans2-=(db)(temp>>1)*bin[i-1];ans2/=(n+1.);printf("%.6f\n",ans1*(1.-p)+ans2*p);return 0;
}

转载于:https://www.cnblogs.com/TSHugh/p/8476934.html

【BZOJ 3652】大新闻 数位dp+期望概率dp相关推荐

  1. Bzoj 3652: 大新闻(数位dp)

    以下内容来自ShallWe's Blog 题目 3652: 大新闻 Description Input Output \(1<=N<=10^18\) 解题报告 显然是一道数位dp的题目,观 ...

  2. 期望/概率dp 学习报告

    期望dp 期望的基本性质 离散型随机变量和连续型随机变量 例题1:红包发红包 期望的基本运算性质 例题2:Little Pony and Expected Maximum 期望的一些经典题型 图上期望 ...

  3. BZOJ 3270: 博物馆 1778: 驱逐猪猡 【概率DP+高斯消元】

    题目描述: 中文题面,不多解释.1778传送门 3270 传送门 (博物馆)题目分析: 也许很多人做概率题的时候都有种虚幻感..感觉莫名其妙就得出一个期望.概率,一知半解... 所以我在这里仔细地剖析 ...

  4. 状压dp、数位dp、概率dp

    裁玻璃 #include<bits/stdc++.h> #define intn long long using namespace std; int dp[1100][1100],a[1 ...

  5. LightOJ - 1038 Race to 1 Again 基础期望概率 dp

    传送门 刚刚学习期望&概率 我们设数X的期望改变次数为P[X] 如果要求X的期望,很容易想到找x的因子; 可以得到下式  ,cnt为X因子个数,ai为X的因子 可以这么理解,当因子ai为1时, ...

  6. 【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp

    打记录的题打多了,忘了用开维记录信息了......我们用f[i][j][l][k]表示已经完成了i次攻击,随从3血剩j个,2血剩l个,1血剩k个,这样我们求出每个状态的概率,从而求出他们对答案的贡献并 ...

  7. bzoj3470 Freda's Walk (期望概率DP)

    bzoj3470 Freda's Walk 原题地址:http://www.lydsy.com/JudgeOnline/problem.php?id=3470 题意: 有向无环图,求从点0出发,走到一 ...

  8. 【LOJ6178】 「美团 CodeM 初赛 Round B」景区路线规划 期望概率DP

    题目链接 LOJ 题解 考虑进行Dp,我们设 f[i][j] f [ i ] [ j ] f[i][j]表示到达节点 i i i消耗了j" role="presentation&q ...

  9. luoguP4206 [NOI2005]聪聪与可可 期望概率DP

    首先,分析一下这个猫和鼠 猫每局都可以追老鼠一步或者两步,但是除了最后的一步,肯定走两步快些.... 既然猫走的步数总是比老鼠多,那么它们的距离在逐渐缩小(如果这题只能走一步反而不能做了...) 猫不 ...

  10. UvaLive6441(期望概率dp)

    1.涉及负数时同时维护最大和最小,互相转移. 2.考场上最大最小混搭转移WA,赛后发现如果是小的搭小的,大的搭大的就可过,类似这种: db a = (C[i] - W[i]) * dp1[i - 1] ...

最新文章

  1. 一次看懂RIP协议。
  2. VTK:Texture之TexturedSphere
  3. Mean Shift算法(CamShift)
  4. python——opencv入门(一)
  5. 只需几分钟即可安装Red Hat Container Development Kit(视频)
  6. 用户暴增下的收入降低,AWS面临尴尬
  7. winpcapp配置c++网口通讯_PLC通讯智能网关,不用编程,实现西门子与罗克韦尔(AB)、三菱等PLC之间通讯...
  8. RDPWrap,win10家庭版最新配置文件支持termsrv10.0.18362.836
  9. 交通灯控制(软件延时法)C语言,智能交通灯控制系统软件部分(49页)-原创力文档...
  10. JZOJ5857. 【NOIP提高组模拟A组2018.9.8】没有上司的舞会
  11. 倪海厦天纪笔记16_倪海厦-天纪16
  12. [回头再说] 国内网页游戏背景音乐
  13. 推荐三款实用的录音转文字软件给你
  14. 【MySQL】COALESCE( )函数
  15. 想要的资源百度搜不到?6个只有老师傅才知道的网站,悄悄领走
  16. thinkpad DS-8A8SH光驱 升级 KU54 固件后不读盘的解决办法
  17. java eclipse调试提示Source not found 或 一闪而过 解决方法
  18. 2022年11月20日-2022年11月26日学习周报
  19. 关于鼠标滚动,横向滚动条不滚动问题
  20. 2020年计算机保研记录(浙软,东华,南航,河海)

热门文章

  1. 不加载任何包,手撕一个R语言版BP神经网络模型
  2. 【送书活动】一本超牛作者,超牛口碑,超牛销量的R数据科学重磅图书免费送啦!...
  3. 在win7的操作系统下安装Oracle11R2
  4. CSS动画实现滚动播放
  5. php自动加载规范 PSR4 (Thinkphp)
  6. 【Alpha版本】十天冲刺集结令
  7. javascript面向对象技术基础
  8. 【webi 专题】能否通过传参数动态生成二维图表?
  9. 拿下宝马中国量产订单的四维图新,如何在自动驾驶地图领域内外兼修?
  10. IDEA 和 Eclipse 使用对比