jzoj5805
#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的更多相关文章
随机推荐
- 3D文件压缩库——Draco简析
3D文件压缩库——Draco简析 今年1月份时,google发布了名为“Draco”的3D图形开源压缩库,下载了其代码来看了下,感觉虽然暂时用不到,但还是有前途的,故简单做下分析. 注:Draco 代 ...
- Oracle 基础表查询
--查询所有用户表的数据 SELECT * FROM ALL_TABLES WHERE OWNER='USER_NAME' --如果是用该用户登录使用以下语句: SELECT * FROM USER_ ...
- 给Array添加去重原型方法
Array.prototype.unique = function(){ var newArray = []; var oldArray = this; if(oldArray.length<= ...
- 开启多个tomcat 注意
1. 将tomcat 复制到另一个文件夹 2. 更改 tomcat 文件夹中 conf/ server.xml 文件 .共3个地方. 1. shutdown 的port 2. connector ...
- servlet填充Response时,数据转换之content-type
在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值. 1. ...
- Maximum profit of stocks
https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Moc ...
- 2018.10.01 bzoj3237: [Ahoi2013]连通图(cdq分治+并查集)
传送门 cdq分治好题. 对于一条边,如果加上它刚好连通的话,那么删掉它会有两个大集合A,B.于是我们先将B中禁用的边连上,把A中禁用的边禁用,再递归处理A:然后把A中禁用的边连上,把B中禁用的边禁用 ...
- 2018.09.30 bzoj2288:生日礼物(贪心+线段树)
传送门 线段树经典题目. 每次先找到最大子段和来更新答案,然后利用网络流反悔退流的思想把这个最大字段乘-1之后放回去. 代码: #include<bits/stdc++.h> #defin ...
- hdu-2955(01背包+逆向思维+审题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 思路:注意p和m[i]是被抓的概率,不能直接用,要转换为逃跑的概率,然后将得到的钱视为背包体积再 ...
- cmd运行命令
winver检查Windows版本 dxdiag检查DirectX信息 mem.exe显示内存使用情况 Sndvol32音量控制程序 sfc.exe系统文件检查器 gpedit.msc 组策略 reg ...