2019南京網路賽 B robots

2021-09-27 06:30:53 字數 1349 閱讀 2772

給乙個 dag

dagda

g,乙個機械人從 1

11 走到 n

nn ,每一步會等概率走向某乙個後繼或不動,每一步(包括不動)的花費是當前的步數。求從起點走到終點的期望花費期望。

期望 dp。

f [u

]f[u]

f[u]

表示從 u

uu 出發的期望步數,g[u

]g[u]

g[u]

表示從 u

uu 出發的期望花費。

即可列出方程: f[u]=\frac}f[v] + f[u] } + 1 \\ g[u] = \frac}g[v] + g[u]+\sum\limits_}f[v] + f[u]} + 1\end

⎩⎪⎨⎪⎧​

f[u]

=d[u

]+1(

u,v)

∈dag∑​

f[v]

+f[u

]​+1

g[u]

=d[u

]+1(

u,v)

∈dag∑​

g[v]

+g[u

]+(u

,v)∈

dag∑​f

[v]+

f[u]

​+1​

記憶化搜尋分別解出所有的f

ff和g

gg即可。

#include.h>

using namespace std;

typedef pair<

double

,double

>

p;const

int maxn =

4e5+10;

int out[maxn]

, n, m;

double f[maxn]

, g[maxn]

;vector<

int>

g[maxn]

;void

add_edge

(int u,

int v)

void

dfs(

int u)

f[u]

=(out[u]+1

+ sumf)

/ out[u]

; g[u]

=(out[u]+1

+ sumg + sumf + f[u]

)/ out[u];}

void

init()

intmain()

dfs(1)

;printf

("%.2f\n"

, g[1]

);}}

2019 南京網路賽 B F H

其實這場我爆零了,都是隊友a的題,現在滾過來補題了。可補題 a先欠著 這個題運用了擴充套件尤拉降冪 於是我o n 的去求每一層的底數和冪數?成功超時。然後搜題解 waht?類似減了一下枝就可以了?當時隊友告訴我用什麼快速冪套快速冪?這種題可以快速冪套快速冪?成功被隊友帶歪,怎麼說呢,自己也菜,隊友也...

2019 南京網路賽 Robots

1.做這個題目之前,首先可以做一下綠豆蛙的歸宿 這道題目。二者幾乎一樣。其實二者的核心思想都是倒著推期望,為什麼會倒著推?其實也有很多種解釋,有句話說得很好,其實就是詮釋了為什麼期望要倒著dp。終點是概率的結束,是期望的開始。2.綠豆蛙的歸宿 解釋一下就是當前節點的值由所有和它相連的節點的值貢獻而來...

Holy Grail 2019南京網路賽

給定乙個有向無負環圖,然後告訴你要依次加6條邊,要保證每次加邊後無負環,求依次加邊時保證當前邊最小。由於題目保證有解,所以s t的邊時一定有t到s的通路,我們找到t到s的最短路,那麼久可以知道s t這條新加邊的最小值 include define maxl 510 using namespace s...