hdu 5236 Article 概率dp
来源:互联网 发布:c语言经典代码 编辑:程序博客网 时间:2024/05/20 22:03
题意:
一个人打文章,他需要打n个字符,他在第i+0.1秒的时候输入一个字符,在i+0.9秒的时候系统可能崩溃,那么他将从上次保存的位置开始输入
在每个i时刻他都可以按下x个字符然后按ctrl+s保存
求他把所有文章输入后所需要按下字符的期望数
分析:
题目意思理解不透彻想了很久,看了题解想了很就才弄懂。
首先我们不考虑保存的情况:设dp【i】为输入完i个字符的期望
那么dp【i】=dp【i-1】+dp【i】*p+1=====》dp【i】=(dp【i】+1)/(1-p)
然后就是枚举保存的次数,因为n个字符需要n秒,那么最多保存n次,
显然保存x次的时候每次都在输入n/x字符的时候保存使得总期望最小
ACcode:
#include <set>#include <queue>#include <cmath>#include <cstdio>#include <cstring>#include <stdlib.h>#include <iostream>#include <algorithm>#define maxn 100005using namespace std;double dp[maxn],p;int n,loop,x;int main(){ int n,loop,cnt=1; scanf("%d",&loop); while(loop--){ scanf("%d%lf%d",&n,&p,&x); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;++i)dp[i]=(dp[i-1]+1)/(1-p); double ans=0x3f3f3f3f3f; for(int i=1;i<=n;++i){ int a=n/i; int b=n%i; ans=min(ans,dp[a+1]*b+dp[a]*(i-b)+x*i); } printf("Case #%d: %.6lf\n",cnt++,ans); } return 0;}
0 0
- HDU 5236 Article [概率DP]
- hdu 5236 Article 概率dp
- hdu 5236 Article 概率dp
- HDU 5236 Article(概率dp+贪心)
- hdu - 5236 Article(2015上海大都会赛)概率dp
- HDU 5236 Article(概率DP+贪心 待解决)
- 概率dp hdu 5236
- HDU 5236 Article 经典概率dp 由一种状态推到另一种状态
- Hdu 5236 Article(dp)
- Hdu 5236 Article【思维+期望Dp】
- http://blog.csdn.net/qq_24451605/article/details/44102963 hdu 4035经典概率dp求期望
- hdu5236 Article(贪心+概率dp)
- 概率DP——HDU 5236
- hdu football 概率DP
- hdu 3835 概率DP
- hdu 3853 概率DP
- hdu Robberies 概率DP
- hdu 4405 概率DP
- CCF NOI1107 成人礼
- 【C++】尽量以const,enum,inline 替换 #define
- 常见排序算法(js实现)
- SAP SMP kapsel iOS app编译方法
- 一个java 文件的HTTp 服务器
- hdu 5236 Article 概率dp
- Java8:新的日期和时间API
- poj------Catenyms
- Spark之任务流程和角色
- JavaScript学习笔记30-数组属性和方法
- 枚举
- layui 父页面调用子页面的方法
- Problem A: 驾驶员与汽车
- 单例模式浅析