題目連結:http://poj.org/problem?id=1236
題意:給定一個表示n所學校網絡連通關系的有向圖。現要通過網絡分發軟體,規則是:若頂點u,v存在通路,發給u,則v可以通過網絡從u接收到。
現要求解兩個問題:
TaskA: 最少分發給幾個學校,就可以使所有的學校都能得到軟體。
TaskB: 最少增加幾條邊,就可以使得,發軟體給任一學校,所有學校都可以收到。
思路:先進行強聯通分量分解,然後縮點,并計算縮點後每個點的出度、入度。入度為0的點的總數為 a ,出度為0的點總數為 b。a即TaskA的答案,而TaskB的答案為max(a, b)。
求SCC部分參考了 http://blog.csdn.net/dgq8211/article/details/7834292
縮點的做法很暴力,将每個強聯通分量重新編号為一個集合,在求SCC時記錄belong。