描述給定一張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 7view codeusing
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 }
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...