洛谷 P4159 SCOI2009 迷路

2021-09-26 06:37:11 字數 701 閱讀 2358

如果邊權為 1

11,則是簡單的矩陣快速冪加速dp遞推方程,又因為邊權並不大,所以考慮拆點,新圖中邊權均為 1

11,將每個點暴力拆成相連的 9

99 個點,對於原先某條邊 (u,

v,w)

(u, v, w)

(u,v,w

),可以轉化為 u

uu 拆成的點中第 w

ww 個連向 v

vv 拆成的點中第 1

11 個,其間恰好 w

ww 條邊。

#include

#include

const

int maxn =

95, mod =

2009

;struct matrix

matrix operator*(

const matrix& rhs)

const};

inline matrix qpow

(matrix a,

int b)

return ans;

}int

main()

a =qpow

(a, t)

;printf

("%d"

, a.x[1]

[(n -1)

*9+1

]);return0;

}

洛谷 P4159 SCOI2009 迷路

windy在有向圖中迷路了。該有向圖有 n 個節點,windy從節點 0 出發,他必須恰好在 t 時刻到達節點 n 1。現在給出該有向圖,你能告訴windy總共有多少種不同的路徑嗎?注意 windy不能在某個節點逗留,且通過某有向邊的時間嚴格為給定的時間。根據題意,可以寫出轉移方程 f sum f ...

題解 P4159 SCOI2009 迷路

large 題目和普通的 01 路徑矩陣加速有一點區別,做法很巧。large 給定乙個鄰接矩陣,即每個點之間的邊權,若為 0 則無邊,因為是 a a 的矩陣,所以隱藏含義是每條邊權 1 9 large 因為邊權不只是 1 了,所以不能直接就將每個點連線邊做矩乘,但是資料範圍太大又不能不用矩乘。注意到...

洛谷 4159 SCOI2009 迷路

題目描述 windy在有向圖中迷路了。該有向圖有 n 個節點,windy從節點 0 出發,他必須恰好在 t 時刻到達節點 n 1。現在給出該有向圖,你能告訴windy總共有多少種不同的路徑嗎?注意 windy不能在某個節點逗留,且通過某有向邊的時間嚴格為給定的時間。輸入格式 第一行包含兩個整數,n ...