【題意】:n種隊伍,每兩個隊伍i,j之間pk, i 贏的概率是pk[i][j]
m輪pk,雙方開始各選乙隻隊伍,若你打敗了對手,你可以選擇在下一次更換成他手上的隊伍,假設你每次都選擇最容易最終獲勝的方法,求連續打贏m場概率的最大的概率。
【分析】:
dp[i][j]:表示用j號隊員打敗了第i個對手的最大的概率。
昨天晚上一直w。
dp很容易寫錯,下面是我的經驗:
1、盡量要考慮第一層的邊界(多是多個入口的題目要這樣)
2、下標一定要對
3、dp定義陣列一定不能過小,不然會越界出錯
4、初始化注意下標範圍
出錯時檢查:
1、輸入輸出1、下標定義2、初始化的下標3、小資料4、狀態方程的邏輯性是否正確
我覺得這道題的巧妙在於,分析複雜度後你會發現是n*m的,但卻有著三維的外衣
for(int i=2;i<=n;i++)
15int
main()
22 scanf("
%d",&n);
23for(int i=1;i<=n;i++) scanf("
%d",&pk[i]);
2425
for(int i=0;i1][i]=p[i][pk[1
]];26
for(int i=0;i)
29for(int i=2;i<=n;i++)
35 }else38}
39}4041
double ans=-1.0;42
for(int i=0;ifmax(ans,dp[n][i]);
4344 printf("
%lf\n
",ans);
4546}47
return0;
48 }
view code
hdu4576 (概率dp 狀態轉移技巧)
題意 機械人在乙個有n nn個格仔的圓形上,初始在1 11號位,接下來給m mm個指令,每個指令代表從當前格仔向乙個方向移動x xx格,由於機械人方向感應有問題,所以會隨機逆時針或順時針移動x xx格。問m mm個指令後,落在 l,r l,r l,r 的概率。資料範圍 1 n 200,0 m 1 0...
hdu 1176 免費餡餅 二維dp
設a i j 為第i秒的j位置掉下的餡餅數量,f i j 為第i秒在j位置接餡餅最多可以接到的最多餡餅數量。由於每秒只能移動乙個位置,因此這一狀態可能由三種情況達到 f i 1 j 1 f i 1 j f i 1 j 1 這三種情況中的最大值加上當前位置可以接到的餡餅數即是當前位置可以接到的最大餡餅...
DP 二維揹包 HDU 2159
description 最近xhd正在玩一款叫做fate的遊戲,為了得到極品裝備,xhd在不停的殺怪做任務。久而久之xhd開始對殺怪產生的厭惡感,但又不得不通過殺怪來公升完這最後一級。現在的問題是,xhd昇掉最後一級還需n的經驗值,xhd還留有m的忍耐度,每殺乙個怪xhd會得到相應的經驗,並減掉相應...