Luogu P1726 上白澤慧音

2022-04-03 00:08:57 字數 1042 閱讀 8360

這顯然是一道求強連通分量(scc)的題目。

只要你正常,都知道應該寫tarjan。

然後(假裝會寫tarjan),其實我當然不會。但是求scc還有另乙個演算法。複雜度和tarjan一樣,只不過常數大了點而且不為人所知而已。

藍書和挑戰程式競賽上都有這個演算法,好像叫kosaraju。是不是很拽的感覺。

具體的演算法可以參照我的部落格另一篇文章。重點是這道題就是scc模板題(不敢相信竟然10分鐘一次a了) 

code

#include#include

#include

using

namespace

std;

const

int n=5005

;vector

a[n],b[n],s;

intf[n],i,n,m,x,y,z,ans,num,c[n],tot,t[n];

inline

void read(int &x)

inline

void dfs(int

k)inline

void rdfs(int

k)int

main()

else

}memset(f,

true,sizeof

(f));

for (i=1;i<=n;++i)

if(f[i]) dfs(i);

memset(f,

true,sizeof

(f));

for (i=s.size()-1;i;--i)

if (f[s[i]]) ++tot,rdfs(s[i]);

for (i=1;i<=tot;++i)

if (t[i]>ans) ans=t[i],num=i;

printf(

"%d\n

",ans);

for (i=1;i<=n;++i)

if (c[i]==num) printf("

%d "

,i);

return0;

}

luoguP1726 上白澤慧音

在幻想鄉,上白澤慧音是以知識淵博聞名的老師。春雪異變導致人間之里的很多道路都被大雪堵塞,使有的學生不能順利地到達慧音所在的村莊。因此慧音決定換乙個能夠聚集最多人數的村莊作為新的教學地點。人間之里由n個村莊 編號為1.n 和m條道路組成,道路分為兩種一種為單向通行的,一種為雙向通行的,分別用1和2來標...

Luogu P1726 上白澤慧音

在幻想鄉,上白澤慧音是以知識淵博聞名的老師。春雪異變導致人間之里的很多道路都被大雪堵塞,使有的學生不能順利地到達慧音所在的村莊。因此慧音決定換乙個能夠聚集最多人數的村莊作為新的教學地點。人間之里由n個村莊 編號為1.n 和m條道路組成,道路分為兩種一種為單向通行的,一種為雙向通行的,分別用1和2來標...

P1726 上白澤慧音

原題鏈結 直到今天 我才知道 幻想鄉還有這麼一位 看起來很可愛的 老師普通的尋找強連通分量 普通的統計最大 普通的輸出 除了我背錯板子了以外 一切都是那麼完美 今天的幻想鄉 也是和平的一天呢 include include include include include include includ...