/*
poj 3744
題目大概是
小明要走一段路
有p的概率走一步
(1-p)的概率走兩步
然後上面有雷
問安全通過的概率
題目通過雷把路程分為多段
把每段安全通過的概率相乘
就是整段安全通過的概率
設dp[i]是小明安全到i的概率
到i的方式有兩種
一種是從(i-1)走一步
第二種是從(i-2)走兩步
所以安全到dp[i]的概率就是
dp[i]=p*dp[i-1]+(1-p)dp[i-2]
因為資料問題
用矩陣來優化**
最後把所求的每一段相乘即可
*/#include
#include
#include
#include
#include
#define mod 1000000007
#define max 100005
#define ll long long
#define pi acos(-1)
using namespace std;
struct matrix
mat;
int res[15];
matrix matrixmul(matrix a,matrix b)
return c;
}matrix quickpow(matrix m,ll n)
return b;
}int main()
double rel=1;
for(int i=1;i<=n;i++)//全部相乘得結果
printf("%.7lf\n",rel);
}return 0;
}
poj3744 概率dp 矩陣乘法
在一條路上有n個地雷,有個sb人按照心情走在這條路上,往前走1步的概率是p,往前走2步的概率是 1 p 求他活著走過這條路的概率。很容易想到一種dp方程 f i p f i 1 1 p f i 2 然而一看範圍 1,100000000 怎麼可能不超時呢 然後可以這麼想 只要避開了最後乙個地雷不就安全...
POJ3744題解 概率dp,矩陣快速冪
士兵從起點1出發,每次移動有p的概率走一步,有1 p的概率走兩步,已知有n個格仔有地雷,問士兵不踩地雷的概率。第一道真正意義上的概率dp題目,一開始打算令dp i 意為更新到i點時踩雷的概率,dp i p dp i 1 1 p dp i 2 這樣寫看上去也是對的 第一眼看上去的角度上來說 但是其實並...
poj 3744 矩陣優化的概率DP
題意 你在一條布滿地雷的道路上,開始在座標1。每次有概率p向前走一步,有概率1 p向前走兩步。道中路某幾個點上會有地雷,問你安全通過的概率。地雷數n 10,座標範圍在100000000內。假設dp i 表示安全走到i點的概率,那麼dp i p dp i 1 1 p dp i 2 很簡單的乙個轉移,可...