演算法實踐 可達性統計

2021-10-06 02:38:29 字數 859 閱讀 2000

給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。

第一行兩個整數n,m,接下來m行每行兩個整數x,y,表示從x到y的一條有向邊。

輸出共n行,表示每個點能夠到達的點的數量。

1≤n,m≤30000

10 10

3 82 3

2 55 9

5 92 3

3 94 8

2 10

4 9

163

3211

111

參考

#include

using

namespace std;

const

int n=

3e4+10;

int net[n]

,head[n]

,ver[n]

,deg[n]

,tot,cnt,a[n]

,n,m;

bitset f[n]

;void

add(

int x,

int y)

//鏈式前向星加邊

void

topsort

(void)}

}void

calc()

}}intmain()

topsort()

;calc()

;for

(int i=

1;i<=n;i++

) cout<.count()

return0;

}

可達性統計

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

可達性統計

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

可達性統計

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