拓扑排序(士兵排队)

来源:互联网 发布:电子手轮 单片机 编辑:程序博客网 时间:2024/05/21 18:13

#include<iostream>#include<fstream>#include<algorithm>using namespace std;int n,m;int din[30];bool f[30][30]; void _bfs(){int line[30],head=1,tail=0;for (int i=0;i<n;i++) if (din[i]==0){tail++;line[tail]=i;} while (head<=tail){cout << char(line[head]+'A');for (int i=0;i<n;i++)if (f[line[head]][i]==1) {din[i]--;f[line[head]][i]=0;if (din[i]==0) tail++,line[tail]=i;}head++;}}int main(){char a,b;cin >> n >> m;for (int i=0;i<m;i++){cin >> a >> b;din[b-'A']++;f[a-'A'][b-'A']=1;}_bfs();}



1 0