http://acm.hdu.edu.cn/showproblem.php?pid=5236

题意:
现在有人要在文本编辑器中输入n个字符,然而这个编辑器有点问题。

在i+0.1s(i>=0)的时刻可以输入一个字符。

在i+0.9s(i>0)的时刻系统可能会崩溃,需要重新开始或者从上次保存点开始。

在i时刻可以选择保存,保存需要按x个键(假设按键速度极快)。最后完成时必须保存一下。

现在要你来确定一个最佳的输入策略,使得最后按键的期望值最小。

思路:
首先不考虑保存的情况:

则输入第i个字符的期望值为:$dp[i] = dp[i-1] + p*(1+dp[i]) + (1-p)$。化简后得:$dp[i]=(dp[i-1]+1)/(1-p)$。

接下来考虑保存的情况,可以猜想尽量的把保存点安排的均匀一些,即每输入k或k+1个字符就保存一次。那么可以枚举保存的次数,取最小值。

 #include<iostream>
#include<cstdio>
using namespace std;
const int maxn = 1e5+; int n, x;
double p;
double dp[maxn]; int main()
{
//freopen("in.txt","r",stdin);
int T;
int cas = ;
scanf("%d",&T);
while(T--)
{
scanf("%d%lf%d",&n,&p,&x);
for(int i=;i<=n;i++)
dp[i] = (dp[i-]+)/(-p);
double ans = 0x3f3f3f3f;
for(int i=;i<=n;i++)
{
int k = n/i;
int r = n%i;
ans = min(ans, r*dp[k+] + (i-r)*dp[k] + i*x);
//将剩余的r个字符分配到r块中,那么这r块需要敲k+1个字符
//剩余的i-r块则只需要敲k个字符
}
printf("Case #%d: %.6f\n", ++cas, ans);
}
return ;
}

HDU 5236 Article(概率DP)的更多相关文章

  1. hdu 5236 Article 概率dp

    Article Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5236 ...

  2. HDU 5236 Article (概率DP+贪心)

    题意:要求输入一篇N个字符的文章,对所有非负整数i:每到第i+0.1秒时可以输入一个文章字符,每到第i+0.9秒时有P的概率崩溃(回到开头或者上一个存盘点) 每到第i秒有一次机会可以选择按下X个键存盘 ...

  3. HDU 3853LOOPS(简单概率DP)

    HDU 3853    LOOPS 题目大意是说人现在在1,1,需要走到N,N,每次有p1的可能在元位置不变,p2的可能走到右边一格,有p3的可能走到下面一格,问从起点走到终点的期望值 这是弱菜做的第 ...

  4. HDU - 1099 - Lottery - 概率dp

    http://acm.hdu.edu.cn/showproblem.php?pid=1099 最最简单的概率dp,完全是等概率转移. 设dp[i]为已有i张票,还需要抽几次才能集齐的期望. 那么dp[ ...

  5. HDU 4405 【概率dp】

    题意: 飞行棋,从0出发要求到n或者大于n的步数的期望.每一步可以投一下筛子,前进相应的步数,筛子是常见的6面筛子. 但是有些地方可以从a飞到大于a的b,并且保证每个a只能对应一个b,而且可以连续飞, ...

  6. HDU 4576 Robot(概率dp)

    题目 /*********************复制来的大致题意********************** 有N个数字,M个操作, 区间L, R. 然后问经过M个操作后落在[L, R]的概率. * ...

  7. HDU 4599 Dice (概率DP+数学+快速幂)

    题意:给定三个表达式,问你求出最小的m1,m2,满足G(m1) >= F(n), G(m2) >= G(n). 析:这个题是一个概率DP,但是并没有那么简单,运算过程很麻烦. 先分析F(n ...

  8. [HDU 4089]Activation[概率DP]

    题意: 有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有以下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排在队列的最后( ...

  9. hdu 3853 LOOPS 概率DP

    简单的概率DP入门题 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #include ...

  10. HDU 3853 期望概率DP

    期望概率DP简单题 从[1,1]点走到[r,c]点,每走一步的代价为2 给出每一个点走相邻位置的概率,共3中方向,不动: [x,y]->[x][y]=p[x][y][0] ,  右移:[x][y ...

随机推荐

  1. Linux基础命令---文本编辑ex

    ex ex会启动vim编辑器,它的执行效果和vim –E相同.从ex模式回到普通模式,可以在vim中输入:vim. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.op ...

  2. Django ORM 操作 必知必会13条 单表查询

    ORM 操作 必知必会13条 import os # if __name__ == '__main__': # 当前文件下执行 os.environ.setdefault('DJANGO_SETTIN ...

  3. 2、在VM上的 CentOS 6.5 上安装mysql

    1.查看系统是否安装了MySQL     使用命令:     #rpm -qa | grep mysql 2.卸载已安装的MySQL      卸载mysql命令如下:       #rpm -e - ...

  4. [转载]decode()函数简介

    今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即 ...

  5. [转载] Oracle之内存结构(SGA、PGA)

    2011-05-10 14:57:53 分类: Linux 一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area ...

  6. Hadoop学习笔记之四:HDFS客户端

    HDFS的客户端核心是DFSClient类,所有使用HDFS的客户端都会持有一个DFSClient对象,或通过持有一个DistributedFileSystem对象间接使用DFSClient: DFS ...

  7. JS 和 Jquery 的一些常用效果

    https://www.cnblogs.com/beiz/tag/%E7%BD%91%E9%A1%B5%E5%B8%B8%E8%A7%81%E6%95%88%E6%9E%9C/   北执

  8. js 显示刚刚上传的图片 (onchange事件)

    <table> <tr width="100"> <td>上传商场图片:</td> <td> <input typ ...

  9. vivado 连接不上板子 There is no current hw_target

    前情提要: vivado连接板子点击auto connect报错 [Labtoolstcl 44-469] There is no current hw_target. 处理步骤: 首先排除硬件问题, ...

  10. thinkphp 开启事物

    $Member->startTrans();//启动事务 // 提交事务$ Member->commit(); // 事务回滚$Member ->rollback();