題目概述:
在乙個r*c的網格中有乙個人有概率向右走,向下走或者留在原地,走一步產生2點花費,球走到終點的期望花費。
大致思路:
概率dp的入門題,學會了求概率要正著推,而求期望需要逆著推。
dp方程為:dp[i][j]=p1*dp[i][j]+p2*f[i][j+1]+p3*f[i+1][j];
複雜度分析:
根據dp方程,顯然複雜度為o(r*c*t).
**:
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11using
namespace
std;
1213
#define sacnf scanf
14#define scnaf scanf
15#define maxn 1010
16#define maxm 26
17#define inf 1061109567
18#define eps 0.00001
19const
double pi=acos(-1.0
);20
#define mod 7
21#define maxnum 10000
22void swap(int &a,int &b)
23double abs(double x)
24 typedef long
long
ll;25 typedef unsigned int
uint;26
27double p[3
][maxn][maxn];
28double
f[maxn][maxn];
2930
intmain()
3144
for(int i=r;i>0;i--)
4551
}52 printf("
%.3lf\n
",f[1][1
]);53}54
//clock_t ed=clock();
55//
printf("\n\ntime used : %.5lf ms.\n",(double)(ed-st)/clocks_per_sec);
56return0;
57 }
hdoj 1153 解題報告
題目意思 有乙個城鎮,它的所有街道都是單行的,並且每條街道都是和兩個路口相連。同時已知街道不會形成迴路。你的任務是編寫程式求最小數量的傘兵,這些傘兵可以訪問 visit 所有的路口。對於傘兵的起始降落點不做限制。解題思路 這個題轉化成求dag圖的最小路徑覆蓋數 節點數 最大匹配數。其中求最大匹配是關...
HDOJ 1047解題報告
練習acm後的第一篇解題報告。這題是求大數階乘的,題目要求最大能求10000的階乘。剛一看到這題,感覺思路很簡單,思考了一會之後就開始寫 思路很簡單,由於是大數乘法,普通的int型別肯定不夠用,要用陣列儲存。然後運算過程就是最簡單的乘法運算過程,乘 移位 加 的簡單過程。提交之後一直是tle,悲劇,...
HDOJ 3951 Coin Game 解題報告
2011年8月18日,阿里巴巴程式設計公開賽a題。本題類似我曾今玩過的的乙個nds解密遊戲 雷頓教授與魔神之笛 裡的一道謎題。遊戲裡是給你15個圍成圈的水龍頭,開始它們全都是開啟漏水的。接著你要跟電腦博弈,從電腦開始,雙方可以選擇關閉連續的兩個水龍頭 當然,已關的不能再開啟了 也可以只選擇關掉乙個,...