拓扑排序

来源:互联网 发布:港澳游怎么样知乎 编辑:程序博客网 时间:2024/06/06 20:26

5:拓扑排序

  • 查看
  • 提交
  • 统计
  • 提问
总时间限制: 
10000ms 
内存限制: 
1000kB
描述

给出一个图的结构,输出其拓扑排序序列,要求在同等条件下,编号小的顶点在前

输入
若干行整数,第一行有2个数,分别为顶点数v和弧数a,接下来有a行,每一行有2个数,分别是该条弧所关联的两个顶点编号
输出
若干个空格隔开的顶点构成的序列(用小写字母)
样例输入
6 81 21 31 43 23 54 56 46 5
样例输出
v1 v3 v2 v6 v4 v5
    #include<iostream>#include<cmath>#include<cstring>#include<algorithm>#include<iomanip>#include<queue>#include<stack>#include<vector>#include<set>#include<map>using namespace std;bool isDelete[105]={0};int In[105]={0};bool edge[105][105];int main(){int v,a,x,y;cin>>v>>a;while(a--){cin>>x>>y;edge[x][y]=true;In[y]++;}for(int i=0;i<v;++i){for(int j=1;j<=v;++j){if(In[j]==0&&!isDelete[j]){isDelete[j]=true;cout<<"v"<<j<<" ";for(int k=1;k<=v;++k){if(edge[j][k]) {edge[j][k]=false;In[k]--;}}break;}}}cout<<endl;return 0;}


原创粉丝点击