HDU 4089 Activation
来源:互联网 发布:ios9.2mac越狱 编辑:程序博客网 时间:2024/05/16 18:33
概率dp,这种一个点作为起点,求到多点的概率或期望的都可以倒过来想。。。即让起点变为那多个点,终点(即答案)即为原来起点的值。
dp[ i ][ 1 ] = p1 * dp[ i ][ 1 ] + p2 * dp[ i ][ i ] ---- (1);
dp[ i ][ j ] = p1 * dp[ i ][ i ] + p2 * dp[ i ][ j - 1] + p3 * dp[ i - 1][ j - 1] + (j <= k ? p4 : 0) ----- (2);
对(2)式递推下去,就可以结合(1)式得出dp[ i ][ 1]的值。。。然后递推即可,然后求得的dp[ n ][ m ] 即为所求。
注意:p3 && p4 == 0 时要特判。。。
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#define LL long long#define CLR(a, b) memset(a, b, sizeof(a))using namespace std;const int N = 2002;const int MOD = 1e9 +7;double dp[2][N];int main(){ int n, m , k, i, j; double p1, p2, p3, p4; while(scanf("%d%d%d%lf%lf%lf%lf", &n, &m, &k, &p1, &p2, &p3, &p4) != EOF) { if(p4 == 0) {puts("0.00000"); continue;} dp[1][1] = p4 / (1 - p1 - p2); double a = p2 / (1 - p1), b = p3 / (1 - p1), c = p4 / (1 - p1), tmp, d; for(i = 2; i <= n; i ++) { tmp = 0;d = a; for(j = 2; j <= i; j ++) { tmp = tmp * a + dp[1 - (i & 1)][j - 1] * b + (j <= k ? c : 0.0) ; d *= a; } tmp = tmp * a + c; dp[i & 1][1] = tmp / (1 - d); for(j = 2; j <= i; j ++) { dp[i & 1][j] = dp[1 - (i & 1)][j - 1] * b + dp[i & 1][j - 1] * a + (j <= k ? c : 0.0); } } printf("%.5f\n", dp[n & 1][m]); }}
- hdu 4089 Activation
- HDU 4089 Activation
- hdu 4089 Activation
- hdu 4089 Activation
- HDU 4089 Activation
- hdu 4089 Activation
- HDU 4089 Activation(概率DP)
- hdu 4089 Activation 概率DP
- 概率dp-hdu-4089-Activation
- [HDU 4089]Activation[概率DP]
- 概率dp HDU 4089 Activation
- hdu-4089-Activation-概率dp
- 【HDU】 4089 Activation 概率DP
- hdu 4089 Activation 概率dp
- 概率DP hdu 4089 Activation
- HDU 4089 Activation(概率DP)
- HDU 4089 Activation 概率dp
- HDU 4089 Activation【概率DP】
- Android监听HOME按键
- gdb symbol
- 内容提供者||android ContentResolver详解
- 黑马程序员------集合(No.2)(Collections、Arrays、集合与数组转换、高级for、可变参数、静态导入)
- 华为2014年机试题【字符串压缩】-【C语言/C++】
- HDU 4089 Activation
- Berkeley DB持久化和高速缓存
- linux下获取线程号
- 【Leetcode】Search in Rotated Sorted Array II
- c++ string和wstring互相转化
- js中子页面给父页面的控件赋值
- 如何实现将JS动态添加的TR中的值传到后台中并批量插入
- codility上的练习(3)
- [设计模式笔记]二. 结构型模式--11.Facade模式(外观模式)(一)