poj 2553強連通 縮點

2021-06-23 06:39:01 字數 945 閱讀 1250

/*先吐槽下,剛開始沒看懂題,以為只能是乙個連通圖0t0

題意:給你乙個有向圖,求g圖中從v可達的所有點w,也都可以達到v,這樣的v稱為sink.求這樣的v.

解;求強連通+縮點。求所有出度為0的點即為要求的點。

注意:可能有多個聯通分支。

*/#include#include#include#define n 5100

struct node bian[n*n*2];

int head[n],yong,cnt,vis[n],stac[n],top,index,n,low[n],dfn[n],belong[n],outdegree[n];

void addedge(int u,int v)

int cmp(const void *a,const void *b)

void init()

int min(int a,int b)

void tarjan(int u)

else

if(vis[v])

low[u]=min(low[u],dfn[v]);

} if(low[u]==dfn[u])while(t!=u);

}}int main()

for(i=1;i<=n;i++)//縮點

if(!dfn[i])

tarjan(i);

//printf("%d\n",cnt);

for(i=0;itop=0;

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

if(outdegree[i]==0)

qsort(stac,top,sizeof(int),cmp);//排序

for(i=0;iprintf("%d ",stac[i]);

printf("%d\n",stac[top-1]);

}return 0;

}

poj 2553 強連通縮點出度為0

題意 乙個有向圖 如果乙個點u能夠達到點v,v也能到達u,則u是sink點 找出所有的sink 按順序輸入 注意 如果點u能夠到達的所有點中,有乙個點不能到達u u就不算是sink 必須所有的點都能夠達到u 第二組資料 1 2 1 能到達的點事 1 2 但2不能到達1 所以1不是sink 2能夠到達...

poj 2186 強連通縮點

題意 有n只奶牛,奶牛有自己認為最受歡迎的奶牛。奶牛們的這種 認為 是單向可傳遞的,當a認為b最受歡迎 b不一定認為a最受歡迎 且b認為c最受歡迎時,a一定也認為c最受歡迎。現在給出m對這樣的 認為.的關係,問有多少只奶牛被除其本身以外的所有奶牛關注。思路 既然有單向傳遞關係,那麼關係圖可能就形成了...

poj 2553 強連通分支 出度為0的點

題目大意 題目分析 實現 c include include include include includeusing namespace std define max node 5005 define min a,b a b?a b define max a,b a b?a b vectorggr...