您的位置:首页 > 其它

hdu1285(邻接矩阵写拓扑排序)

2016-06-27 12:53 253 查看
评了好几次,有迷之错误!

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
int n,map[1009][1009],ans,m,cnt[1009];

int main()
{

while(scanf("%d%d",&n,&m)!=EOF)
{
int x,y;
memset(map,0,sizeof(map));
memset(cnt,0,sizeof(cnt));
for (int i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
if (map[y][x]==0) cnt[y]++;//避免重边
map[y][x]=1;
}
for (int i=1;i<=n;i++)
{
int j;
for (j=1;j<=n;j++) if (cnt[j]==0) break;
cnt[j]--;
if (i<n) printf("%d ",j);else printf("%d",j);
for (int l=1;l<=n;l++) if (map[l][j]==1) cnt[l]--;
}///拓扑排序,非常简洁
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: