博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Codeforces441E】Valera and Number [DP]
阅读量:6006 次
发布时间:2019-06-20

本文共 1968 字,大约阅读时间需要 6 分钟。

Valera and Number

Time Limit: 20 Sec  Memory Limit: 512 MB

Description

  

Input

  

Output

  

Sample Input

  5 3 25

Sample Output

  1.9218750000

HINT

  

Solution

  考虑运用DP

  

Code

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 using namespace std; 9 typedef long long s64;10 11 const int ONE = 800005;12 const int MOD = 1e9 + 7;13 const int all = 255;14 15 int x, n;16 double p;17 double f[205][260][255][2];18 double Ans;19 int val, num;20 21 int get() 22 { 23 int res;char c; 24 while( (c=getchar())<48 || c>57 );25 res=c-48; 26 while( (c=getchar())>=48 && c<=57 ) 27 res=res*10+c-48; 28 return res; 29 } 30 31 void Deal_first(int n)32 {33 int record[250], num = 0, x = n;34 while(x)35 record[++num] = x & 1,36 x >>= 1;37 int j = 1, pos = 9, val = record[pos];38 for(pos = 9; pos + j - 1 <= num; j++)39 if(record[pos + j] != val) break;40 41 f[0][n & all][j][val] = 1; 42 }43 44 int Get(int x)45 {46 int res = 0;47 while(x % 2 == 0) res++, x >>= 1;48 return res;49 }50 51 int main()52 {53 x = get(), n = get(), p = (double)get() / 100;54 Deal_first(x);55 56 for(int i = 0; i < n; i++)57 for(int s = 0; s <= all; s++)58 for(int j = 1; j <= 250; j++)59 for(int k = 0; k <= 1; k++)60 {61 val = s >> 8 - 1 & 1;62 if(val != k) num = 1; else num = j + 1;63 f[i + 1][s << 1 & all][num][val] += f[i][s][j][k] * p;64 65 val = s == all ? (k ^ 1) : k;66 if(val != k && k == 0) num = 1; else num = j;67 f[i + 1][s + 1 & all][num][val] += f[i][s][j][k] * (1 - p);68 }69 70 for(int s = 0; s <= all; s++)71 for(int j = 1; j <= 250; j++)72 for(int k = 0; k <= 1; k++)73 {74 if(s == 0 && k == 0) val = j + 8;75 else if(s == 0 && k == 1) val = 8;76 else val = Get(s);77 Ans += f[n][s][j][k] * val;78 }79 80 printf("%.8lf", Ans);81 }
View Code

 

  • Unkonwn

转载于:https://www.cnblogs.com/BearChild/p/7683037.html

你可能感兴趣的文章
Javascript基础复习 数据类型
查看>>
C# Selenium 破解腾讯滑动验证
查看>>
bom与dom的区别
查看>>
Matlab2012a下配置LibSVM—3.18
查看>>
Java生成-zipf分布的数据集(自定义倾斜度,用作spark data skew测试)
查看>>
修复CefSharp浏览器组件中文输入Bug
查看>>
正则与sed,grep,awk三剑客
查看>>
诊断一句SQL不走索引的原因
查看>>
iOS开发拓展篇—UIDynamic(简单介绍)
查看>>
Linux pipe函数
查看>>
图片标注工具LabelImg使用教程
查看>>
(原創) 如何設計一個數位相框? (SOC) (Quartus II) (SOPC Builder) (Nios II) (TRDB-LTM) (DE2-70)...
查看>>
/etc/profile文件内容
查看>>
量词 匹配优先与忽略优先
查看>>
一页纸IT项目管理:大道至简的实用管理沟通工具
查看>>
汽车知识:车内异味的清除方法
查看>>
IE6 7下绝对定位引发浮动元素神秘消失
查看>>
浏览器的回流和重绘及其优化方式
查看>>
Eclipse基金会发布Eclipse Photon IDE
查看>>
JavaScript 设计模式
查看>>