題意:機械人在乙個有n
nn個格仔的圓形上,初始在1
11號位,接下來給m
mm個指令,每個指令代表從當前格仔向乙個方向移動x
xx格,由於機械人方向感應有問題,所以會隨機逆時針或順時針移動x
xx格。問m
mm個指令後,落在[l,
r]
[l,r]
[l,r
]的概率。
資料範圍:1≤n
≤200,0
≤m≤1
06
1\leq n\leq 200,0\leq m\leq 10^6
1≤n≤20
0,0≤
m≤10
6題解:f[n
ow][
i]
f[now][i]
f[now]
[i]表示當前執行了now
nowno
w個指令,到達了第i
ii格的概率,初始化為f[0
][1]
=1
f[0][1]=1
f[0][1
]=1。
由於n mnm
nm為1 08
10^8
108級別,故空間**,考慮執行第now
nowno
w個指令只與執行到了now
−1
now-1
now−
1個指令有關,所以可以模2
22來更新狀態,最後為0/1
0/10/
1則統計f[0
/1][
l,r]
f[0/1][l,r]
f[0/1]
[l,r
]的概率即可。
**:
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
int n, m, l, r;
const
int n =
210;
inline
intread()
while
(isdigit
(ch)
)return x * f;
}double f[2]
[n];
//兩個狀態是為了區分上乙個狀態和當前狀態
intmain()
now ^=1
;}double res =0;
for(
int i = l; i <= r; i++
) res +
= f[now]
[i];
printf
("%.4lf\n"
, res);}
}
注意:本題很卡時間,建議快讀。 hdu4336(概率DP 狀態壓縮)
題意 要收集n張卡片,得到每張卡片的概率為pi,所有的pi之和不一定為1 思路 這題的n只有20,所以可以用狀態壓縮,由於數學知識不給力,思路是隊友給的,設所有卡片的集合為u,已經擁有的卡片集合為s,初始態s 最終的狀態為s u,狀態轉移為dp i 1 p1 dp j1 p2 dp j2 其中dp ...
HDU 1176 免費餡餅 DP多種狀態轉移
都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於小徑兩側都不能站人,所以他只能在小徑上接...
HDU4800 二維dp 狀態轉移很靈活
題意 n種隊伍,每兩個隊伍i,j之間pk,i 贏的概率是pk i j m輪pk,雙方開始各選乙隻隊伍,若你打敗了對手,你可以選擇在下一次更換成他手上的隊伍,假設你每次都選擇最容易最終獲勝的方法,求連續打贏m場概率的最大的概率。分析 dp i j 表示用j號隊員打敗了第i個對手的最大的概率。昨天晚上一...