給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。
輸入格式
第一行兩個整數n,m,接下來m行每行兩個整數x,y,表示從x到y的一條有向邊。
輸出格式
輸出共n行,表示每個點能夠到達的點的數量。
資料範圍
1≤n,m≤300001≤n,m≤30000
輸入樣例:
10 10
3 82 3
2 55 9
5 92 3
3 94 8
2 10
4 9輸出樣例:16
3321
1111
#include
#include
#include
#include
#include
using
namespace std;
const
int n =
30010
, m =
30010
;int n, m;
int h[n]
, e[m]
, ne[m]
, idx;
int d[n]
, q[n]
;bitset f[n]
;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 ++
)printf
("%d\n"
, f[i]
.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 3 3 94 8 2 10 4 9163...
可達性統計 拓撲排序 bitset
給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。輸入格式 第一行兩個整數n,m,接下來m行每行兩個整數x,y,表示從x到y的一條有向邊。輸出格式 輸出共n行,表示每個點能夠到達的點的數量。資料範圍 1 n,m 30000 輸入樣例 10 10 3 82 3 2 55 9 5...
upc 可達性統計 (拓撲排序 bitset)
題目描述 給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。n,m 30000。輸入第一行兩個整數n,m,接下來m行每行兩個整數x,y,表示從x到y的一條有向邊。輸出共n行,表示每個點能夠到達的點的數量。10 10 3 82 3 2 55 9 5 92 3 3 94 8 2 ...