AcWing 164 可達性統計 搜尋

2021-10-04 19:30:45 字數 1078 閱讀 8272

圖的遍歷

原題鏈結

本題思路

建立乙個圖的鄰接表

每個煉表裡都儲存了與之直連的點,那判斷乙個點的可達性,可求那些直連點自己煉表裡儲存點的並集

優化方案與技巧

bitset

將數壓縮為二進位制形式(內部表現)的十進位制(外部表現)

陣列模擬鄰接表

int e[n]

, ne[n]

, h[n]

, idx;

void

add(

int a,

int b)

topsort模板
int seq[n]

;void

topsort()

}}

notes:用c語言的輸入輸出會快一些

ac**

#include

#include

#include

#include

#include

using

namespace std;

const

int maxn =

30005

;int n, m;

int h[maxn]

, e[maxn]

, ne[maxn]

, idx;

int d[maxn]

, seq[maxn]

;bitset f[maxn]

;void

add(

int a,

int b)

void

topsort()

}}intmain()

topsort()

;for

(int i = n-

1; i >=

0; i--

)for

(int i =

1; i <= n; i++

) cout << f[i]

.count()

<< endl;

return0;

}

AcWing 164 可達性統計

給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。輸入格式 第一行兩個整數n,m,接下來m行每行兩個整數x,y,表示從x到y的一條有向邊。輸出格式 輸出共n行,表示每個點能夠到達的點的數量。資料範圍 1 n,m 30000 輸入樣例 10 10 3 82 3 2 55 9 5...

AcWing 164 可達性統計

給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。輸入格式 第一行兩個整數n,m,接下來m行每行兩個整數x,y,表示從x到y的一條有向邊。輸出格式 輸出共n行,表示每個點能夠到達的點的數量。資料範圍1 n,m 30000 1 n,m 30000 顯然可以用拓撲排序 狀態壓縮來...

可達性統計

題目描述 給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。n,m 30000。輸入第一行兩個整數n,m,接下來m行每行兩個整數x,y,表示從x到y的一條有向邊。輸出共n行,表示每個點能夠到達的點的數量。樣例輸入 複製樣例資料 10 10 3 82 3 2 55 9 5 92...