hdoj 3203 Door Repairing

原创 2012年03月31日 08:51:15
类型:DP

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3203

来源:2009 Shanghai Invitation Contest Host by DHU

思路:设状态dp(i, 0)表示第i个人来之前门坏,到结束时的最小花费,dp(i, 1)表示第i个人来之前门好,到结束时的最小花费。

当第i个人来之前门坏时,YY有两种选择,修或者不修,得到两种状态,dp(i + 1, 0) + b 和 a + p * dp(i + 1, 0) + (1.0 - p) * dp(i + 1, 1)

当第i个人来之前门好时,只有一种情况[按概率是否踢坏门],p * dp(i + 1, 0) + (1.0 - p) * dp(i + 1, 1)

初始化:f[n][0] = min(a, b), f[n][1] = 0

逆推求解

参考:http://www.cnblogs.com/zcwwzdjn/archive/2012/02/25/2367364.html
// hdoj 3203 Door Repairing
// ac 46MS 1796K
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;

const int MAXN = 100010;
int n, d, a, b, i;
double p, f[MAXN][2];

int main() {
    while (scanf("%d %d %d %d", &n, &d, &a, &b) != EOF, n || d || a || b) {
        p = d / 100.0;
        if (n <= 1)
            printf("%.4lf\n", 0.0);
        else {
            f[n][0] = min(a, b), f[n][1] = 0;
            for (i = n - 1; i >= 1; i --) {
                f[i][0] = min(f[i + 1][0] + b, a + p * f[i + 1][0] + (1.0 - p) * f[i + 1][1]);
                f[i][1] = p * f[i + 1][0] + (1.0 - p) * f[i + 1][1];
            }
            printf("%.4lf\n", f[1][1]);
        }
    }
    return 0;
}




hdu 3203 Door Repairing(概率DP 反向推导)

hdu 3203 Door Repairing
  • solotzg
  • solotzg
  • 2014年10月02日 22:36
  • 745

Codeforces 910B Door Frames

题意:给定长为n的棍子,个数不限,现在要截出4个长为a的棍子和两个长为b的棍子。要求选取的原料必须是一根完整棍子或其中一部分。 分析:数据规模很小,可以多次随机对数组进行排序,然后贪心求最小值。 ...
  • computer_user
  • computer_user
  • 2018年01月04日 08:41
  • 189

Zoj 3203 Light Bulb

本题练习三分法,亦可用求导来求极值。 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3366 二分法适合解决单调性...
  • niuox
  • niuox
  • 2013年01月22日 14:57
  • 1321

Codeforces Testing Round #14 (Unrated) B - Door Frames

用dp做的,当时没有细想,大概会有更简单的办法的。#include #define min(_x,_y) ((_x...
  • Myriad_Dreamin
  • Myriad_Dreamin
  • 2017年12月23日 00:20
  • 128

Codeforces Testing Round #14 (Unrated) - B - Door Frames(DFS)

B. Door Frames time limit per test 1 second memory limit per test 256 megabytes inp...
  • w326159487
  • w326159487
  • 2017年12月22日 21:30
  • 265

zoj3203 Light Bulb(三分)

Problem Description Compared to wildleopard's wealthiness, his brother mildleopard is rather poor. H...
  • u013776243
  • u013776243
  • 2014年03月15日 14:54
  • 502

Ignatius and the Princess II hdu 1027

Ignatius and the Princess II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...
  • u011471397
  • u011471397
  • 2013年09月01日 13:08
  • 1312

Codeforces-766D-The Door Problem(2-SAT-并查集解)

题目链接:Codeforces-766D-The Door Problem 首先可以知道一个钥匙只能使用0或1次。使用多次时与使用0或1次等效。 如果一个门状态是1,那么与这个门关联的两个钥匙要么都使...
  • jinglinxiao
  • jinglinxiao
  • 2017年02月25日 22:21
  • 351

Testing Round #14 (Unrated) B - Door Frames 全排列暴力

全排列暴力 #include #include #include #include #include #include #include #include #include #include...
  • xiang_6
  • xiang_6
  • 2017年12月22日 21:19
  • 162

ZOJ 3203 3203 Light Bulb【三分法】

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3366二分法用来解决单调问题,三分法解决凸(凹)函数问题,逼近求解代码...
  • u014427196
  • u014427196
  • 2015年10月08日 00:50
  • 232
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdoj 3203 Door Repairing
举报原因:
原因补充:

(最多只允许输入30个字)