题目连接:uva 10529 - Dumb Bones
题目大意:给定n,表示要放n个骨牌,每次放下骨牌,有可能向左倒的概率为pl,向右倒的概率为pr,如果倒下,会将那一侧的骨牌全部推倒,可以选择位置先后放骨牌,问说一种放骨牌次数最少的期望是多少。
解题思路:dp[i]表示放i个骨牌需要的步数期望,维护一个最优放的位置,dp[i]=min\{(从i-1到i的步数)}+(0到i-1的步数)}
- (从i-1到i的步数):dp[i−j−1]∗pl+dp[j]∗pr+11−pl−pr
- (0到i-1的步数):dp[j]+dp[i−j−1]
so:
dp[i]=min{dp[i−j−1]∗pl+dp[j]∗pr+11−pl−pr+dp[j]+dp[i−j−1]}
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn = 1005;
const double INF = 0x3f3f3f3f3f3f3f;
int N;
double pl, pr, dp[maxn];
double solve () {
double ac = 1 - pl - pr;
for (int i = 1; i <= N; i++) {
dp[i] = INF;
for (int j = 0; j < i; j++) {
double tmp = dp[i-j-1] * pl + dp[j] * pr;
tmp = dp[j] + dp[i-j-1] + (tmp + 1) / ac;
if (tmp < dp[i])
dp[i] = tmp;
}
}
return dp[N];
}
int main () {
while (scanf("%d", &N) == 1 && N) {
scanf("%lf%lf", &pl, &pr);
printf("%.2lf\n", solve());
}
return 0;
}
分享到:
相关推荐
api-dumb-rest
smart-dumb-coffee-machine:如何使咖啡机具有感知力。 我的意思是聪明
dumb-init 跨框架init初始化进程,有效回收僵尸进程
官方离线安装包,亲测可用
愚蠢的例子 我正在学习C#,为此,我想使用到目前为止所学的知识编写一个简单的程序。
dumb-opinion-master.aer.gh
贡献 随意提交带有您遇到的愚蠢规则的拉取请求。 请参阅其他网站的格式并遵循以下规则: 包括带有链接的站点名称。 ...包括至少一张屏幕截图。...我大概花了一个小时,我以为我会发疯(是的,会话经常过期,而您实际上...
角哑一组 Angular 指令,以获得更好的 Flux 体验。执照麻省理工学院执照
dumb-init-1.1.3-17.el7.x86_64.rpm
dumb-jump, Emacs"jump to definition" 软件包 dumb 傻瓜跳转是一个Emacs软件包,支持多种编程语言,有利于。 这意味着最小--和理想的零--配置,绝对没有存储索引( 标签) 或者持久化 background 进程。 Dumb跳转至少...
Python 中的dumb-init模块,通过下载该模块并解压,将解压后的文件夹放入Python的安装目录中的\Lib\site-packages中
Big Dumb Integer(或 BDI)是一个 JavaScript 库,作为练习构建,允许在该语言中进行任意精度的整数数学运算。 BDI 是作为一个学习项目开发的,旨在帮助解决 JavaScript 中的 Project Euler 问题。 还有其他一些...
MATLAB用拟合出的代码绘图高级设计项目报告 CSE / EEE / ETE 聋哑通讯员 由...所提交 Md. ...我们非常高兴提交关于“聋哑人交流者”的高级设计项目报告,该报告是根据Capstone设计项目CSE ...我们想请您接
有点笨的计算器 我的任务是使它成为具有许多功能的全功能计算器。
Richsilv: 愚蠢的收藏Meteor 的哑集合,其中客户端仅根据需要与服务器同步。为什么? 避免与通常的发布/订阅模型相关的实时数据开销,同时保留 minimongo 和 Collections API 的好处。 还利用 localStorage 来改善...
哑初始化 dumb-init是一个简单的流程管理器和初始化系统,旨在在最小的容器环境(例如 )中作为PID 1运行。 它被部署为用C编写的小型静态链接二进制文件。 轻量级容器已经普及了运行单个进程或服务而无需使用诸如或...
PS2的HDL工具,可以传输游戏,修改HDL文件等
哑的 哑巴是国际象棋引擎,他在考虑最重要的棋子的情况下会采取最坏的举动,并且在几步之内就可能输掉一场比赛。 v0.1 -- initial release make move: ...w -- Dumb Chess Engine move e -- exit
Dumb Jump是Emacs的“跳转到定义”软件包,支持40多种支持“正常工作”的编程语言。 这意味着最小的配置,最好是零配置,绝对没有存储索引(TAGS)或持久的后台进程。 Dumb Jump至少需要GNU Emacs 24.3 。 这个怎么...