高斯消元與期望DP

2022-05-19 23:48:08 字數 2151 閱讀 5965

高斯消元可以解決一系列dp序混亂的無向圖上(期望)dp

dp序是一道dp的所有狀態的乙個排列,使狀態x所需的所有前置狀態都位於狀態x前;

(通俗的說,在乙個狀態轉移方程中『=』左側的狀態應該在『=』右側的所有狀態之後)

於是往往只有按dp序轉移狀態,才可以保證每個狀態值的正確性

一道dp的狀態序不是唯一的

常見的有:

某些dag上dp按拓撲序轉移;

某些樹上dp先轉移x點的子樹,後轉移x;

某些樹上dp先轉移x,後轉移x點的子樹;

線性dp左到右或右到左;

區間dp小到大;

某些記憶化搜尋的第一次出棧順序;

轉移時涉及概率的dp,他可以是線性的、樹上的、dag上的、任何形式的;

其標誌是轉移時涉及概率,

如「狀態x有p/q的概率轉移到y,有(1-p/q)的概率轉移到z」;

一般情況下概率/期望dp除了應該使用浮點資料型別存貯狀態、可能可以通過概率有關的知識優化之外,與非概率期望dp沒有什麼不同;

然而又有一類概率/期望dp則不同;

即一部分dp序混亂的無向圖概率/期望dp

無向圖dp,這裡指的是在無向圖上dp

無向圖概率/期望dp並非一定是dp序混亂的,然而這裡只討論dp序混亂的那一部分;

dp序混亂,往往是指存在兩個狀態x,y,x可以轉移到y,y也可以轉移到x;

在非概率/期望dp中不可能存在這種情況——因為這會導致狀態值不確定;

然而在概率/期望dp中這種情況卻可以存在;

因為如果在此類dp中,存在dp序混亂的情況,一般是x的p/q可以轉移到y,y的a/b可以轉移到x;

於是經過了無窮次相互轉移後,之後的轉移增量趨向於無窮小,於是可以認為此時狀態的值確定了下來;

於是,有了一種十分顯然的想法——迭代相互轉移的次數,直到精度符合要求;

然而這種想法是十分幼稚的——迭代層數無法確定,

於是得分的上限取決於你設定的迭代層數會在什麼資料範圍的情況下導致超時;

得分的下限則完全取決於出題人的心情,這意味著出題人很容易造出可以卡掉迭代層數很高的**的資料;

於是有了用高斯消元處理dp序混亂的無向圖概率/期望dp方法

高斯消元是一種解線性方程組的方法,

這裡只介紹高斯消元解n元一次方程組(n元一次方程組是線性方程組的一類)

事實上,高斯消元法與我們數學中常用的消元法類似;

其流程是:

1.選定乙個未知數xi,準備把他消去;

2.隨便選定乙個xi係數不為零的方程xi,(若沒有,則無解或無數解);

3.把其他所有方程都減去xi的某倍數,促使除了xi外,所有方程的xi被消去;

4.重複123,(每個未知數,每個方程只被選定一次),直到只剩下乙個未知數乙個方程;

5.按選定方程的倒序選定方程,不斷把已知未知數的值帶入其中得到新未知數的值;

有唯一解的條件,至少n個方程,在高斯消元過程中沒有被作無解或無數解

**:

1

bool flag=true;2

double matrix[n+1][n+1],ans[n+1];3

4void gauss(int

n)12 flag=fl;

13if(!flag)return;14

for(i=1;i)

15for(j=0;j<=n;j++)

16 matrix[i][j]-=matrix[n][j]*matrix[i][n]/matrix[n][n];

17if(n-1)gauss(n-1

);18

if(!flag)return;19

for(i=1;i)

20 matrix[n][0]-=matrix[n][i]*ans[i];

21 ans[n]=matrix[n][0]/matrix[n][n];

22 }

view code

觀察**可以看出其效率為$o(n^3)$

高斯消元可以處理方程組;

於是列出關於n個狀態的n個方程往往可以直接解得狀態的值

於是把n個本質不同的狀態轉移方程列作方程組,用高斯消元求解即可解決一類dp序混亂的概率/期望dp;

js09有趣的遊戲

hn13遊走

是不是應該寫幾個題解呢...

待續......

Apple 高斯消元 概率與期望

題目大意 有兩個變數x,y初始為0,每次x x 1 n或者y y 1 m。問第一次變成x x,y y時的期望步數。n,m 100 n,m le100 n,m 10 0題解 顯然直接列方程高消,可以將 n 1,m 1 看作0求 n 1 x,m 1 y 的答案。注意到可以只設最後一行或者最後一行一列求解...

高斯消元 浮點高斯消元

浮點數高斯消元 問題描述 給出乙個線性方程組,有n個方程組,m個未知數。解這個線性方程組。輸入格式 第1行 2個整數n和m,n,m 400,且n不一定等於m 接下來n行,每行m 1個整數,表示乙個方程的m個未知數的係數和常數 輸出格式 如果無解,輸出 no solution 如果有唯一解,輸出m行,...

遊走 HNOI2013 期望Dp 高斯消元

vjudge 乙個無向連通圖,頂點從1編號到n,邊從1編號到m。小z在該圖上進行隨機遊走,初始時小z在1號頂點,每一步小z以相等的概率隨機選 擇當前頂點的某條邊,沿著這條邊走到下乙個頂點,獲得等於這條邊的編號的分數。當小z 到達n號頂點時遊走結束,總分為所有獲得的分數之和。現在,請你對這m條邊進行編...