zjut 1423 (高斯消元 求期望)

2021-06-16 11:40:53 字數 1279 閱讀 1340

此題為高斯消元求期望的入門題目, 做法就是對圖中非x的點重新標號, 令ei表示從該點出發到達終點的期望走過的步數,對於終點的e值顯然為0, 最後的結果為起點的e值,方程也不難得到。 注意普通的高斯消元化成上三角陣用在這類題目可能會有問題, 因為會出現方程無解的情況, 這樣在高斯消元最後一步回代的過程中會出現問題, lrj的白書中給出了一種化為對角陣的高斯消元法, 避免了這個問題, 細節詳見**。

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

const int n = 205;

const double eps = 1e-8;

#define fi first

#define se second

double a[n][n];

int idx[15][15];

bool inf[n];

int d[n];

char mat[15][15];

int n, m, c, st, ed;

pairpts[n];

vectoradj[n];

int dx = ;

int dy = ;

bool ok(int x, int y)

void gauss()

}void gao()

} for (int i = 0; i < c; i++)

fill(a[i], a[i] + c + 1, 0);

for (int i = 0; i < c; i++)

int x = pts[i].fi, y = pts[i].se;

int tmp = 0;

for (int j = 0; j < 4; j++)

} if (tmp)

a[i][i] = 1;

for (int j = 0; j < adj[i].size(); j++)

a[i][c] = 1; }

gauss();

memset(inf, 0, sizeof(inf));

for (int i = c - 1; i >= 0; i--)

}int main()

return 0;

}

ZJUT 1423 地下迷宮(概率DP 高斯消元)

題目大意 由於山體滑坡,dk被困在了地下蜘蛛王國迷宮。為了搶在dh之前來到tft,dk必須盡快走出此迷宮。此迷宮僅有乙個出口,而由於大boss的力量減弱影響到了dk,使dk的記憶力嚴重下降,他甚至無法記得他上一步做了什麼。所以他只能每次等概率隨機的選取乙個方向走。當然他不會選取周圍有障礙的地方走。如...

ZJUT 地下迷宮 (高斯求期望)

設dp i 表示在i點時到達終點要走的期望步數,那麼dp i 1 m dp j 1,j是與i相連的點,m是與i相鄰的點數,建立方程組求解。重要的一點是先判斷dk到達不了的點,需要bfs預處理一下進行離散化,再建立方程組。include include include include include ...

高斯消元與期望DP

高斯消元可以解決一系列dp序混亂的無向圖上 期望 dp dp序是一道dp的所有狀態的乙個排列,使狀態x所需的所有前置狀態都位於狀態x前 通俗的說,在乙個狀態轉移方程中 左側的狀態應該在 右側的所有狀態之後 於是往往只有按dp序轉移狀態,才可以保證每個狀態值的正確性 一道dp的狀態序不是唯一的 常見的...