hdu 5781 2016多校5
来源:互联网 发布:域名购买后要做什么 编辑:程序博客网 时间:2024/05/30 23:49
题意:账户中有[0,k]的钱,每次可以取Y的钱,如果所要取得钱Y大于账户中的钱警告一次,警告次数不能超过M次,问把全部钱取出来的期望是次数是多少?
题解:dp[K][W] = min(dp[K][W],dp[K-i][W]*(K-i+1)/(K+1)+dp[i-1][W-1]*i/(K+1)+1);dp[i][j]表示中户中的钱[0,i],有j次错误机会的期望。答案就是dp[ K][W]。如果Alice选用二分法,那么取钱的次数就是log2(K),所以当W大于log2(K)的时候是只要考虑w等于log2(K)。
#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>using namespace std;#define N 2100double dp[N][16];double dfs(int K,int W){if(dp[K][W]>-1){return dp[K][W];}if(K==0) return 0;if(W==0) return 1e10;dp[K][W]=1e10;for(int i=1;i<=K;i++){dp[K][W] = min(dp[K][W],dfs(K-i,W)*(K-i+1)/(K+1)+dfs(i-1,W-1)*i/(K+1)+1);}return dp[K][W];}int main(){int K,W;for(int i=0;i<=N;i++){for(int j=0;j<16;j++){dp[i][j]=-2;}}while(scanf(" %d %d",&K,&W)==2){if(W>14) W = 12;printf("%.6lf\n",dfs(K,W));}return 0;}
0 0
- hdu 5781 2016多校5
- hdu 5787 2016多校5
- hdu 5792 2016多校5
- hdu 5783 2016多校5
- hdu 5791 2016多校5
- 2016 多校 hdu 5723
- 2016多校&&HDU.5738
- HDU 5781 ATM Mechine 16多校5 概率dp
- 2016多校 1011 hdu tetrahedron
- hdu 5739 2016多校2
- HDU 5739 Fantasia 2016多校
- hdu 5795 2016多校6
- hdu 5800 2016多校6
- hdu 5798 2016多校6
- hdu 5831 2016多校8
- hdu 5821 2016多校8
- 2016多校5 hdu 5783 Divide the Sequence 贪心
- hdu 多校
- 2.安卓logcat使用
- LINUX下安装memcached
- hdu 5761(积分)
- ACM模板——快速判断素数
- Android瀑布流照片墙实现,体验不规则排列的美感
- hdu 5781 2016多校5
- Message事实更新UI
- flidder抓包配置
- LeetCode 378. Kth Smallest Element in a Sorted Matrix
- hdu 5762(鸽笼原理)
- [2.0] 函数式编程初探
- SPOJ 4491 PGCD - Primes in GCD Table(莫比乌斯反演)
- kali2.0 U盘安装无法挂载安装光盘
- Qt操作Excel文件 QtXlsxWriter的配置使用说明