#include #include #include using namespace std;const int M=50002;const int N=10002;struct Edge{int s; //边的起点int e; //边的终点int next; //该边的前驱邻接边的编号}edge[2*M+1];int th,top;int stack[2*M+1]; //存储输出边的编号int head[N]; //head[i]表示以顶点i为起点的最后一条边的编号bool visit[2*M+1];void AddEdge(int u,int v){edge[th].s=u;edge[th].e=v;edge[th].next=head[u];head[u]=th++;}void DFS(int s){int i;for(i=head[s];i!=-1;i=edge[i].next)if(!visit[i]){visit[i]=true;DFS(edge[i].e);stack[top++]=i;}}int main(){int i,n,m,x,y;scanf("%d%d",&n,&m);memset(head,-1,sizeof(head));memset(visit,0,sizeof(visit));th=0;for(i=0;i=0;i--)printf("%d\n",edge[stack[i]].e);return 0;}
POJ2230
最新推荐文章于 2022-01-26 17:15:00 发布