題目描述
給定一張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輸出樣例:16
3321
1111
#include
using
namespace std;
const
int n=
30010
;int n,m;
int p[n]
;//通向y的節點的個數
vector<
int> e[n]
;//儲存圖
vector<
int> tuopo;
//儲存拓撲排序的結果
bitset f[n]
;void
tuoposort()
while
(q.size()
)}void
init()
}void
find()
for(
int i=
1;i<=n;
++i)
cout<.count()
<}int
main()
可達性統計
題目描述 給定一張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 300001 n,m 30000 輸入樣例 10 10 3 82...
問題 A 可達性統計
題目 法一 過程 一開始我直接拿bfs跑,沒有用去重,導致乙個節點重複算了多次,使用了bitset的位運算 去重後,答案才對,bitset 好 bitset還省空間 bitset陣列類似與bool陣列,但是省空間 思路 前向星建圖,將所有的visit u u 初始化為1 自己和自己相連 如果乙個點u...