LightOJ-1364 Expected Cards(期望dp)
来源:互联网 发布:学生请假软件 编辑:程序博客网 时间:2024/04/30 08:26
O - Expected Cards
LightOJ - 1364#include<bits/stdc++.h>using namespace std;const double eps = 1e-8;double dp[15][15][15][15][6][6];int x[10];int A, B, C, D;bool ok (int a, int b, int c, int d, int e, int f) { x[1] = a; x[2] = b; x[3] = c; x[4] = d; x[e]++; x[f]++; if (x[1] < A || x[2] < B || x[3] < C || x[4] < D) return 0; return 1;}double DP (int i, int j, int k, int s, int q, int p) { if (ok (i, j, k, s, q, p)) return dp[i][j][k][s][q][p] = 0; if (dp[i][j][k][s][q][p] > -eps) return dp[i][j][k][s][q][p]; double ret = 0; int tot = i + j + k + s; if (q) tot++; if (p) tot++; if (tot == 54) return 0; if (i < 13) ret += DP (i + 1, j, k, s, q, p) * (13 - i) ; if (j < 13) ret += DP (i, j + 1, k, s, q, p) * (13 - j) ; if (k < 13) ret += DP (i, j, k + 1, s, q, p) * (13 - k) ; if (s < 13) ret += DP (i, j, k, s + 1, q, p) * (13 - s) ; //注意:当翻开的牌是Joker时,当时就要选择Joker要变成什么样的牌,并且使得翻牌期望值最低 if (q == 0) { double tmp = 100; for (int qq = 1; qq <= 4; qq++) tmp = min (tmp, DP (i, j, k, s, qq, p)); ret += tmp; } if (p == 0) { double tmp = 100; for (int pp = 1; pp <= 4; pp++) tmp = min (tmp, DP (i, j, k, s, q, pp)); ret += tmp; } ret = ret / (54 - tot) + 1; return dp[i][j][k][s][q][p] = ret;}void init() { for (int i = 0; i <= 13; i++) for (int j = 0; j <= 13; j++) for (int k = 0; k <= 13; k++) for (int s = 0; s <= 13; s++) for (int q = 0; q <= 4; q++) for (int p = 0; p <= 4; p++) dp[i][j][k][s][q][p] = -1.0;}int main() { int T; // freopen ("in.txt", "r", stdin); scanf ("%d", &T); for (int cas = 1; cas <= T; cas++) { init(); scanf ("%d%d%d%d", &A, &B, &C, &D); int t = 0; t += max (A - 13, 0); t += max (B - 13, 0); t += max (C - 13, 0); t += max (D - 13, 0); if (t > 2) printf ("Case %d: -1\n", cas); else printf ("Case %d: %.10f\n", cas, DP (0, 0, 0, 0, 0, 0)); } return 0;}
0 0
- LightOJ-1364 Expected Cards(期望dp)
- [LightOJ 1364] Expected Cards (高维期望DP)
- LightOJ 1364 Expected Cards (概率DP)
- Expected Cards LightOJ
- LightOJ 1364 Expected Cards(724训练题目)
- LightOJ1364---Expected Cards(概率dp+三进制状压)
- UVA 5811 Cards 数学期望DP
- bnu 12639 Cards (dp求期望)
- LightOJ - 1248 Dice (III) 期望 + dp
- 【期望dp】Lightoj 1027 A Dangerous Maze
- 【期望dp】LightOJ 1030 Discovering Gold
- LightOJ 1030 - Discovering Gold (期望dp)
- LightOJ 1030 Discovering Gold(期望DP)
- lightOJ Discovering Gold(期望DP入门)
- 【LightOJ 1030】Discovering Gold(期望DP)
- LightOJ 1030 【概率DP求期望】
- LightOJ-1274 Beating the Dataset(期望dp)
- LightOJ-1287 Where to Run(期望dp)
- json深复制与浅复制
- use tools:overrideLibrary="xxx.xxx.xxxr" to force usage 问题分析。
- 洛谷 P1345 [USACO5.4]奶牛的电信Telecowmunication
- 一次血的教训,阿里云rds mysql 数据库,本地化并日志恢复已删除的两天数据
- Volley之简单封装(1)
- LightOJ-1364 Expected Cards(期望dp)
- 使用OD从零开始Cracking
- Codeforces Round #393 Pavel and barbecue
- Mac使用Cocos2.2.6的最低配置
- 使用BOOL变量犯过的错误
- 【t084】数列
- 算法之路二:刘汝佳算法竞赛入门经典:c++结构体
- 克鲁斯卡尔算法:蓝桥杯 算法训练 安慰奶牛 (最小生成树)
- 流媒体协议—HLS