2101 可達性統計

2022-02-13 23:23:34 字數 875 閱讀 7612

描述

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

輸入格式

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

輸出格式

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

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7

using

namespace

std;89

#define res register int

10const

int n=30000+10;11

int head[n],ver[n<<1],nxt[n<<1],deg[n],n,m,tot(0

);12

int a[n],cnt(0

);13 bitsetf[n];

1415 inline void add(int x,int

y) 18

19 queueq;

20 inline void

toposort()

213132}

33}3435

intmain()

3643

toposort();

44for(res i=cnt ; i>=1 ; i--)

4553}54

for(res i=1 ; i<=n ; i++) printf("

%d\n

",f[i].count());

55return0;

56 }

view code

CH2101 可達性統計

給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。n,m 30000。輸入格式 第一行兩個整數n,m,接下來m行每行兩個整數x,y,表示從x到y的一條有向邊。輸出格式 共n行,表示每個點能夠到達的點的數量。題解 從點x出發能夠到達的點構成的集合是f x 有 f x u u存在...

可達性統計

題目描述 給定一張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...