【BZOJ 3652】大新闻 数位dp+期望概率dp
并不难,只是和期望概率dp结合了一下.
稍作推断就可以发现加密与不加密是两个互相独立的问题,这个时候我们分开算就好了.
对于加密,我们按位统计和就好了;对于不加密,我们先假设所有数都找到了他能找到的最好的匹配(就是异或后为二进制最高位与n-1相等的最大数)并且算出其异或后的总和,然后我们按位贪心,带着所有的数(一开始我们假设所有的数是小于等于二进制最高位与n-1相等的最大数的所有数)从高位走向低位,每走一步,如果这一位是0,就会导致一半的数在这一位不能是1,减去这一半的数在这一位上的贡献,如果这一位是1,就意味着一半的数往后一定会全部是1,我们把这一半数从我们带着的数中减去,另一半待定(留下).
这样思路清晰,实现简易,只是一定注意贡献不要统计错.
#include <cstdio>
typedef double db;
typedef long long LL;
LL f,bin[],n,temp;
db ans1,ans2,p;
int digit[],bit,i,j;
int main(){
scanf("%lld%lf",&n,&p),bin[]=,temp=--n;//我的代码需要的是n-1
while(temp)digit[++bit]=temp&,temp>>=,bin[bit]=bin[bit-]<<;
for(i=bit;i>;--i){
f=temp;
if(digit[i])f+=(n&(bin[i-]-))+,temp+=bin[i-];//这一位如果是1的话,对后面都有贡献,所以要累加temp
ans1+=(db)f*(n-f+)*.*bin[i-];
}
ans1=ans1/(n+.)/(n+.);
ans2=(db)(n+.)*(bin[bit]-);
temp=bin[bit];
for(i=bit;i>;--i)
if(digit[i]&)temp>>=;
else ans2-=(db)(temp>>)*bin[i-];
ans2/=(n+.);
printf("%.6f\n",ans1*(.-p)+ans2*p);
return ;
}
【BZOJ 3652】大新闻 数位dp+期望概率dp的更多相关文章
- BZOJ 3652: 大新闻(数位DP+概率论)
不得不说数位DP和博弈论根本不熟啊QAQ,首先这道题嘛~~~可以分成两个子问题: 有加密:直接算出0~n中二进制每一位为0或为1分别有多少个,然后分位累加求和就行了= = 无加密:分别算出0~n中二进 ...
- [BZOJ 3652]大新闻
[BZOJ 3652] 大新闻 题意 随机从 \([0,n)\) 中选取一个整数 \(x\), 并从 \([0,n)\) 中再选取一个整数 \(y\). 有 \(p\) 的概率选取一个能令 \(x\o ...
- 【BZOJ 3811】玛里苟斯 大力观察+期望概率dp+线性基
大力观察:I.从输出精准位数的约束来观察,一定会有猫腻,然后仔细想一想,就会发现输出的时候小数点后面不是.5就是没有 II.从最后答案小于2^63可以看出当k大于等于3的时候就可以直接搜索了 期望概率 ...
- BZOJ 3270 博物馆 && CodeForces 113D. Museum 期望概率dp 高斯消元
大前提,把两个点的组合看成一种状态 x 两种思路 O(n^7) f[x]表示在某一个点的前提下,这个状态经过那个点的概率,用相邻的点转移状态,高斯一波就好了 O(n^6) 想象成臭气弹,这个和那个的区 ...
- 【NOIP模拟赛】黑红树 期望概率dp
这是一道比较水的期望概率dp但是考场想歪了.......我们可以发现奇数一定是不能掉下来的,因为若奇数掉下来那么上一次偶数一定不会好好待着,那么我们考虑,一个点掉下来一定是有h/2-1个红(黑),h/ ...
- HDU 3853 期望概率DP
期望概率DP简单题 从[1,1]点走到[r,c]点,每走一步的代价为2 给出每一个点走相邻位置的概率,共3中方向,不动: [x,y]->[x][y]=p[x][y][0] , 右移:[x][y ...
- BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp
首先这道题让我回忆了一下最短路算法,所以我在此做一个总结: 带权: Floyed:O(n3) SPFA:O(n+m),这是平均复杂度实际上为O(玄学) Dijkstra:O(n+2m),堆优化以后 因 ...
- 期望概率DP
期望概率DP 1419: Red is good Description 桌面上有\(R\)张红牌和\(B\)张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付 ...
- 【BZOJ 3925】[Zjoi2015]地震后的幻想乡 期望概率dp+状态压缩+图论知识+组合数学
神™题........ 这道题的提示......(用本苣蒻并不会的积分积出来的)并没有 没有什么卵用 ,所以你发现没有那个东西并不会 不影响你做题 ,然后你就可以推断出来你要求的是我们最晚挑到第几大的 ...
随机推荐
- node的 node-sass@^4.11.0 出现:npm: no such file or directory, scandir '.../node_modules/node-sass/vendor'
解决办法: 查看node_modules文件夹,发现,并无vender 文件夹.如下图: 2. 在 node_modules/node-sass 下创建 vendor 文件夹 3. 最后运行: n ...
- 经典简约风格教师求职简历免费word模板
20款经典简约风格教师求职简历免费word模板,也可用于其他专业和职业,个人免费简历模板,个人简历表免费,个人简历表格. 声明:该简历模板仅用于个人欣赏使用,请勿用于商业用途,谢谢. 下载地址:百度网 ...
- SpringBoot文件上传异常之提示The temporary upload location xxx is not valid
原文: 一灰灰Blog之Spring系列教程文件上传异常原理分析 SpringBoot搭建的应用,一直工作得好好的,突然发现上传文件失败,提示org.springframework.web.multi ...
- 如何fork比特币的源码并同步更新到本地
一.首先在Github上fork比特币源码,就会在自己的项目库里创建一份比特币代码的拷贝. 打开https://github.com/bitcoin/bitcoin,点击右上角的“Fok”图标,稍 ...
- [硬件配置]Ubuntu 16.04下使用NETGEAR Nighthawk AC1900 (A7000) WIFi USB适配器
为了增强无人机与地面站之间的传输信号,组里买了这款WiFi信号接收器,无奈只有Windows和Mac OS版本的驱动程序.后来不知道从哪里得来的一个偏方可以安装Ubuntu下的驱动,特此记录. 内核降 ...
- RabbitMQ入门:发布/订阅(Publish/Subscribe)
在前面的两篇博客中 RabbitMQ入门:Hello RabbitMQ 代码实例 RabbitMQ入门:工作队列(Work Queue) 遇到的实例都是一个消息只发送给一个消费者(工作者),他们的消息 ...
- OpenFastPath(1):快平面接口是否支持多ip
1.配置环境 fp0接口上配置两个IP地址: fp0 Link encap:Ethernet HWaddr 00:0c:29:30:38:db inet addr:192.168.56. ...
- 单一docker主机网络
一. 容器网络模型: Docker定义了一个非常简单的网络模型,叫做container network model(CNM).如下图所示:
- Docker 在Windows上的安装
1. 软件从Docker官网下载,进行安装,安装后,能看到如下界面. 2. 安装后,查看Docker 版 本信息. 3. 配置加速器 (1)选择setting. (2)依次选择,并填写自己的加速器地址 ...
- Java时间格式的使用,bug难时真是坑
很简单的问题,尤其是新手开发,要多自己动手写代码,都说程序猿大都是程序的搬用工,其实不然,好的写手,和差的写手,区别就在是不是会花时间读读代码,并且自己动手实践一下,其实一个程序范这样的错误,绝对是低 ...