UVA10305拓扑排序

来源:互联网 发布:不用80端口需要备案吗 编辑:程序博客网 时间:2024/05/18 01:08

拓扑排序模板直接贴就行了:

#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<string>#include<cctype>#include<cmath>#include<map>#include<set>#include<vector>#include<queue>#include<stack>#include<ctime>#include<algorithm>#define LL long longusing namespace std;const int N=1e2+10;int G[N][N],topo[N],c[N];int t;int n,m;int dfs(int u){    c[u]=-1;    for(int v=1;v<=n;v++)        if(G[u][v])    {        if(c[v]<0) return 0;        else if(!c[v]&&!dfs(v)) return 0;    }    c[u]=1;    topo[--t]=u;    return 1;}int toposort(){    t=n;    for(int i=1;i<=n;i++)    if(!c[i])    {        if(!dfs(i))            return 0;    }    return 1;}int main(){    while(cin>>n)    {        cin>>m;        if(!n&&!m) break;        memset(G,0,sizeof(G));        memset(c,0,sizeof(c));        for(int i=0;i<m;i++)        {            int a,b;            cin>>a>>b;            G[a][b]=1;        }        toposort();        for(int i=0;i<n-1;i++)            cout<<topo[i]<<' ';        cout<<topo[n-1]<<endl;    }    return 0;}


0 0
原创粉丝点击