#include<bits/stdc++.h>
using namespace std;
int x,n,pp,ct[10000];
long double f[210][(1<<8)+5][240][2],p,ans;
int main(){
	freopen("exp.in","r",stdin);
	freopen("exp.out","w",stdout);
	scanf("%d%d%d",&x,&n,&pp);
	p=pp/100.0;
	for(int i=1;i<=2000;i++)
		ct[i*2]=ct[i]+1;
	int d=x&1,b=x&255,c=0;
	x>>=8;
	while(x&&(x&1)==d){
		x>>=1;
		c++;
	}
	f[0][b][c][d]=1.0;
	for(int i=0;i<n;i++)
		for(int j=0;j<=255;j++)
			for(int k=0;k<=230;k++)
				for(int l=0;l<=1;l++){
					int b,c,d;
					if(j==255){
						b=0;
						if(l==1){
							d=0;
							c=k;
						}
						else{
							d=1;
							c=1;
						}
					}
					else{
						b=j+1;
						d=l;
						c=k;
					}
					f[i+1][b][c][d]=f[i+1][b][c][d]+f[i][j][k][l]*(1-p);
					//+1
					if(j>127){
						b=(j*2)&255;
						int td=(j*2)&256;
						td>>=8;
						if(td!=l){
							c=1;
							d=td;
						}
						else{
							c=k+1;
							d=l;
						}
					}
					else{
						b=j*2;
						if(l!=0){
							d=0;
							c=1;
						}
						else{
							d=0;
							c=k+1;
						}
					}
					f[i+1][b][c][d]=f[i+1][b][c][d]+f[i][j][k][l]*p;
					//*2
				}
	for(int j=1;j<=255;j++)
		for(int k=0;k<=230;k++)
			for(int l=0;l<=1;l++)
				ans=ans+f[n][j][k][l]*ct[j];
	for(int k=0;k<=230;k++)
		ans=ans+f[n][0][k][1]*8+f[n][0][k][0]*(8+k);
	printf("%.12Lf\n",ans);
}

我怎麼天天犯傻逼錯誤!

jzoj5805的更多相关文章

随机推荐

  1. 删除SVN版本控制目录

    @echo On @Rem 删除SVN版本控制目录 @PROMPT [Com] @for /r . %%a in (.) do @if exist "%%a\.svn" rd /s ...

  2. jQuery中animate()对Firefox无效的解决办法

    在使用 animate()做返回顶部的动画时,会出现对Firefox无效的情况,如: $('body').animate({scrollTop:'0'},500); 它对Chrome,IE,Opera ...

  3. linux下一些常用系统命令

    查看系统打开的文件数 lsof|wc -l 查看当前目录下的文件数 find -type f | wc -l 查看某个目录下的文件数,注意这里/home包括其所有子目录 find /home -typ ...

  4. Package gtk+-3.0 was not found in the pkg-config search path

    问题描述: 在fedora21系统上通过rpmbuild构建fcitx的二进制包时出现以上错误,经老程序员指点:“是相应的开发包没有安装” 解决办法: yum installl gtk3-devel  ...

  5. livecd-creator: UnicodeEncodeError: 'ascii' codec can't encode characters in position 1282-1

    通过livecd-creator进行构建ISO过程中出现题目中错误, livecd-creator命令属于包livecd-tools 问题原因: 编码错误,初步判断应该与编码相关的环境变量设置有关 解 ...

  6. 03 解析库之Beautifulsoup模块

    Beautifulsoup模块   一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式 ...

  7. 使用PrintWriter out=response.getWriter();输出script脚本时乱码解决

    使用PrintWriter out=response.getWriter();输出script脚本时乱码解决 最近遇到了一个奇怪的事情,仅仅用out.print("<script ty ...

  8. 2018.09.01 独立集(树形dp)

    描述 给定一颗树(边权为1),选取一个节点子集,使得该集合中任意两个节点之间的距离都大于K.求这个集合节点最多是多少 输入 第一行是两个整数N,K 接下来是N-1行,每行2个整数x,y,表示x与y有一 ...

  9. 聚合函数、group by

    聚合函数: sql语言中一种特殊的函数:聚合函数,SUM, COUNT, MAX, MIN, AVG等.这些函数和其它函数的根本区别就是它们一般作用在多条记录上.SELECT SUM(populati ...

  10. Linux下配置Nginx(在root的/etc/rc.local里配置开机启动功能http://tengine.taobao.org/)

    上面是下载的包下载地址 http://tengine.taobao.org/download_cn.html nginx官网http://nginx.org/ 下一步 下一步 其中remote为重要属 ...