hdu1285确定比赛名次(拓扑排序kahn算法)
来源:互联网 发布:做淘宝后感想 编辑:程序博客网 时间:2024/04/29 14:18
用kahn算法实现拓扑排序。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285
代码:
#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;vector<int> arr[505];priority_queue<int,vector<int>, greater<int> > q;int in[505],ans[505];int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { memset(in,0,sizeof(in)); for(int i = 0;i<m;i++) { int a,b; scanf("%d%d",&a,&b); arr[a].push_back(b); in[b]++; } for(int i = 1;i<=n;i++) { if(in[i]==0) q.push(i); } int cnt = 0; while(!q.empty()) { int now = q.top(); ans[cnt++] = now; q.pop(); while(arr[now].size()>0) { int v = arr[now].back(); arr[now].pop_back(); in[v]--; if(in[v]==0) q.push(v); } } int flag = 0; for(int i = 1;i<=n;i++) { if(arr[i].size()>0) { flag = 1; } arr[i].clear(); } if(flag) printf("Error\n"); else { for(int i = 0;i<cnt;i++) { if(i!=cnt-1) printf("%d ",ans[i]); else printf("%d\n",ans[i]); } } } return 0;}
阅读全文
0 0
- hdu1285确定比赛名次(拓扑排序kahn算法)
- 【拓扑排序】 hdu1285 确定比赛名次
- hdu1285 确定比赛名次 拓扑排序
- 确定比赛名次(hdu1285拓扑排序)
- hdu1285 确定比赛名次 (拓扑排序)
- HDU1285 确定比赛名次 拓扑排序
- hdu1285 确定比赛名次(拓扑排序)
- HDU1285 确定比赛名次 【拓扑排序】
- hdu1285 - 确定比赛名次 (拓扑排序)
- HDU1285 确定比赛名次(拓扑排序)
- HDU1285 确定比赛名次(拓扑排序)
- HDU1285确定比赛名次 + 拓扑排序
- hdu1285 确定比赛名次 (拓扑排序)
- Hdu1285 拓扑排序-确定比赛名次
- HDU1285确定比赛名次【拓扑排序】
- HDU1285确定比赛名次(拓扑排序)
- hdu1285 确定比赛名次 (简单拓扑排序)
- hdu1285 确定比赛名次(拓扑排序)
- (ubuntu系列)——pycharm更换python版本为anaconda内置版本
- Linux服务器添加yum源仓库
- 自定义dialog简单封装
- GC参数
- python spicy.hierarchy 实现聚类
- hdu1285确定比赛名次(拓扑排序kahn算法)
- [YII2] COOKIE的操作使用
- single-number
- 一些基础问题
- Amdahl`s law
- Android数据库高手秘籍(六)——LitePal的修改和删除操作
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- nfs write2
- 调用自己编写的matlab函数