日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

东北酱油 模拟赛 期望dp

發布時間:2024/3/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 东北酱油 模拟赛 期望dp 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自動取款機

?

問題描述】

?????小沈陽在小品里說過:“人生最痛苦的事情是人死了,錢還沒花了”。

于是小宋(80)決定要將所有的儲蓄從ATM機中取出花光 小宋忘記了她有多少存款(銀行卡密碼她是記得的2333),這個奇怪的ATM不支持查詢存款余額功能。小宋知道她存款的唯一信息是存款上限是K元,這意味著小宋的存款x0K之間的隨機整數(包括K)。

????每次小宋都可以嘗試從ATM中拿出一些錢。 如果她要取的y元錢不大于她的存款,ATM將立即給小宋y但如果她的存款小于y小宋將收到ATM的警告。

如果小宋被警告超過w,那么她將被警方帶走,作為小偷。

???小宋希望取錢次數期望最小。

???由于小宋聰明,她總是采取最好的策略。

請計算小宋將所有儲蓄從自動取款機中取出期望次數最小值是多少,并不得被警方帶走。

輸入格式

每個測試點包含多組測試數據(最多10

每組測試數據包含兩個整數K,和W

1K,W2000

輸出格式】

對于每組測試數據輸出取錢次數最小的期望值,舍入到小數點后6位。

樣例輸入】

1 1

4 2

20 3

?

樣例輸出】

1.000000

2.400000

4.523810

然而她并不知道趙本山說了:“人生最最痛苦的事情是人活著呢錢沒了”。。。

這是個悲傷的故事。


題解:這確實是個悲傷的故事,沒學過期望dp,毫無疑問的爆零了

取完不單單是指他存折里沒錢了,小宋需要得到確定的信息告訴他取完了。

譬如小宋知道存折里最多1元,取一次就取完了。

或者當取1元的時候被警告了,也表示他存折里沒錢了。

考慮dp[i][j]表示當前小宋直到存折里錢數上限為i,還可被警告j次,取完錢的期望。 (小宋知道自己最多0元錢)

?



貼上代碼:

#include<cstdio> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; double dp[2010][16];double dfs(int w,int c) {//dp[i][j]表示當前小宋直到存折里錢數上限為i,還可被警告j次,取完錢的期望if(dp[w][c] != -1) return dp[w][c];if(w == 0) return 0;if( c == 0) return 1e9;double ans = 1e9;double k = 1.0/(1.0+w);for(int i = 1 ; i <= w ; i ++ )ans = min(ans,i*k*dfs(i-1,c-1)+(w+1-i)*k*dfs(w-i,c)+1);return dp[w][c]=ans; } int main() {freopen("atm.in","r",stdin);freopen("atm.out","w",stdout);int i,j,k,w;for (i=0;i<2010;i++)for (j=0;j<16;j++) dp[i][j]=-1;while (scanf("%d%d", &k, &w)!=EOF) {w=min(w,15);printf("%.6f\n", dfs(k,w));}return 0; }


總結

以上是生活随笔為你收集整理的东北酱油 模拟赛 期望dp的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。