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的更多相关文章
随机推荐
- css简单分页
html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- Luogu 3959 [NOIP2017] 宝藏- 状压dp
题解 真的想不到这题状压的做法...听说还有跑的飞快的模拟退火,要是现场做绝对滚粗QAQ. 不考虑深度,先预处理出 $pt_{i, S}$ 表示让一个不属于 集合 $S$ 的 点$i$ 与点集 $S$ ...
- linux(rhel) rescue修复详解
修复linux,先准备好一张安装光盘,光驱安装好后开机,选择从光驱启动.等待安装盘显示操作界面时选择"rescue"选项,如果有光标提示的话,也可以输入:linux rescue进 ...
- sql中 in 、not in 、exists、not exists 用法和差别
% 的一类. NOTIN:通过 NOTIN 关键字引入的子查询也返回一列零值或更多值. 以下查询查找没有出版过商业书籍的出版商的名称. SELECT pub_name FROM publishers ...
- 2018.07.22 bzoj3613: [Heoi2014]南园满地堆轻絮(逆序对结论题)
传送门 做这道题有一个显然的结论,就是要使这个数列单调不减,就要使所有逆序对保证单调不减,也就是求出所有逆序对的最大差值,然后除以2然后就没了. 代码如下: #include<bits/stdc ...
- hdu-1124(数学问题,求n!的尾零的个数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1124 思路:每五个数1个0,5个5就2个0(不用管2,一定充足) #include<iostre ...
- 18 Customers' Role in Good Customer Service 客户在高质量客服中的作用
Customers' Role in Good Customer Service 客户在高质量客服中的作用 ⑴High-quality customer service is preached by ...
- python面向对象-1方法、构造函数
类是指:描述一种事物的定义,是个抽象的概念 实例指:该种事物的一个具体的个体,是具体的东西 打个比方: “人”是一个类.“张三”是人类的一个具体例子 在编程时也是同样的道理,你先自己定义一个“类”,当 ...
- siganl tappII的应用及MATLAB调用
1.在应用SIGNAL TAPPII时一定要把不用的端口设置为输入三态,否则观察不到数据. 2.用SIGNAL TAPII 观察数据时双向是观察不到数据的,但模块内部用于传输双向口数据的寄存器可以看到 ...
- Python 插件(add-in)基础知识
1) Python插件为何物 一个插件(add-in)就是一个客户化,比如嵌入到ArcGIS应用程序中的工具条上的一系列工具,这些工具作为ArcGIS标准程序的补充可以为客户完成特殊任务. ArcG ...