Luogu 4206 NOI2005 聰聰與可可

2022-06-13 02:57:12 字數 1911 閱讀 1082

bzoj 1415

簡單期望 + 記憶化搜尋。

發現聰聰每一步走向的地方是在可可的所在位置確定時是確定的,設$nxt_$表示聰聰在$x$,可可在$y$時聰聰下一步會走到**,我們先預處理出這個$nxt$。

為了預處理$nxt$,我們還需要先預處理乙個$d_$表示$x$到$y$的最短距離,因為所有邊的邊權相同,所以我們第一次廣搜到乙個點的時候就是到這個點的最短路。

假如$d_ == d_ + 1$,$dis(x, y) == 1$,那麼$z$就是$x$到$y$最短路上的乙個點,用它更新$nxt_$即可。

我們設$f_$ 表示聰聰在$x$,可可在$y$時抓到可可的期望步數,顯然有:

$f_ == 0$  $(x == y)$

$f_ == 1$  $(nxt_ == y)$  或者 $(nxt_, y} == y)$

而根據期望的性質,可可的隨機行走可以表示成這個公式:

$f_ = \frac f_, y}, z}} + 1$  $z == y$或者$z$可由$y$一步走到。 

記憶化搜尋實現。

時間複雜度$o(n^2)$。

code:

#include #include 

#include

using

namespace

std;

typedef

double

db;const

int n = 1005

;const

int inf = 0x3f3f3f3f

;int

n, m, st, ed, d[n][n];

int tot = 0

, head[n], deg[n], nxt[n][n];

db f[n][n];

struct

edge e[n

<< 1

];inline

void add(int

from, int

to)

inline

void read(int &x)

inline

void chkmin(int &x, int

y)

queue

q;inline

void bfs(int fir, int *dis) }}

}db dfs(

int x, int

y) res +=dfs(nxt[nxt[x][y]][y], y);

return f[x][y]= res / (deg[y] + 1) + 1;}

intmain()

for(int i = 1; i <= n; i++) bfs(i, d[i]);

/*for(int i = 1; i <= n; i++, printf("\n"))

for(int j = 1; j <= n; j++)

printf("%d ", d[i][j]);

*/memset(nxt,

0x3f, sizeof

(nxt));

for(int x = 1; x <= n; x++)

}/*for(int i = 1; i <= n; i++, printf("\n"))

for(int j = 1; j <= n; j++)

printf("%d ", nxt[i][j]);

*/for(int i = 1; i <= n; i++)

for(int j = 1; j <= n; j++)

f[i][j] = -1.0

;

dfs(st, ed);

printf(

"%.3f\n

", f[st][ed]);

return0;

}

view code

Luogu3823 NOI2017 蚯蚓排隊

題面 luogu3823 題意 n nn只蚯蚓,每只蚯蚓有乙個 6 le 6 6的長度,初始時每只蚯蚓一支隊伍。給出m mm個操作。三種操作 將以i ii結尾的隊伍和以j jj開頭的隊伍合併,且i ii的隊伍在前。將i ii和i ii後面乙隻蚯蚓處斷開,分為兩支隊伍。定義以第x xx只蚯蚓開始的長度...

Luogu4770 NOI2018 你的名字

題面 luogu4770 題意 給定乙個串s ss。每次詢問給出乙個字串t tt,問t tt有多少個不同的子串使得其也不是s l r s l r s l r 的子串。s 5 1 05 s le 5 times 10 5 s 5 105,q 1 05 q le 10 5 q 105,t 10 6 su...

Luogu 2254 NOI2005 瑰麗華爾茲

簡單dp,設 f 表示第i個時間段,鋼琴處在 j,k 位置移動距離的最大值,那麼有轉移 f max f f max f 其中 j dx len leq a leq j 1 k dy len leq b leq k 1 len ed st 1 其實就是乙個滑動視窗,考慮到轉移順序,就是寫四遍單調佇列 ...