HDU ACM 1285 确定比赛名次

确定比赛名次,算很简单的拓扑排序了。领接矩阵表示。

#include<iostream> using namespace std;int map[501][501];int degree[501];int main() {int i,j,k;int n,m,p1,p2;bool f;while(cin>>n>>m){memset(map,0,sizeof(map));memset(degree,0,sizeof(degree));for(i=1;i<=m;i++){cin>>p1>>p2;if(!map[p1][p2]) //判断重边,否则会出错{map[p1][p2]=1;degree[p2]++;}}f=0;//拓扑排序for(i=1;i<=n;i++) //进行n次处理以便处理完所有点{for(j=1;j<=n;j++) //找到度为0的点{if(degree[j]==0){degree[j]–; //对应度数递减,,避免下次再处理if(f==0){cout<<j;f=1;}else cout<<" "<<j;for(k=1;k<=n;k++) //去除和度数为0的点相连的边,即读书减一if(map[j][k]==1)degree[k]–;break;}}}cout<<endl;}return 0; }

松树亭亭玉立的耸立在周围小草小花的中间,

HDU ACM 1285 确定比赛名次

相关文章:

你感兴趣的文章:

标签云: