HDU 1285 确定比赛名次 (拓扑排序)
2015-08-18 09:51
92 查看
基础题,不多说。。
//#pragma comment(linker, "/STACK:102400000,102400000") #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <vector> using namespace std; typedef long long LL; const long long mod = 1e9 + 7; const int INF = 0x3f3f3f3f; const int M = 1050; vector<int>G[M]; int n, m, indegree[M],q[M]; int toposort() { int i, j, k; i=0; while(i<n) { for(j=1; j<=n; j++) { if(indegree[j] == 0) { indegree[j]--; q[i++] = j; for(k=1; k<=n; k++) //删除相关的边 if(G[j][k]) indegree[k]--; break; } } } return 1; } int main() { int i, a, b; while(scanf("%d%d", &n, &m) == 2) { memset(G, 0, sizeof(G)); for(int i=0;i<M;++i) { G[i].clear(); } memset(indegree, 0, sizeof(indegree)); for(i=1; i<=m; i++) { scanf("%d %d", &a, &b); if(G[a][b] == 0) { G[a][b] = 1; indegree[b]++; } } toposort(); for(i=0; i<n; i++) { if(i != n-1) printf("%d ", q[i]); else printf("%d\n", q[i]); } } return 0; }
相关文章推荐
- 程序员编程艺术:第三章续、Top K算法问题的实现
- 常用Vim指令
- 821 - Page Hopping (Floyd)
- 主成分分析(Principal components analysis)-最大方差解释
- 【转】Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- 常用插件----总结
- Javascript中的apply和call
- [翻译]MSIL 教程
- 简述SQL Server 2005数据库镜像相关知识
- jQuery学习一
- svn commit后回滚撤销修改
- Android典型界面设计(6)——ActionBar Tab+ViewPager+Fagment实现滑动导航
- jquery animate 动画效果使用说明
- git 如何删除本地未提交的文件
- zoj 3870 Team Formation
- (大数据工程师学习路径)第五步 MySQL参考手册中文版----初识MySQL
- 2006年中国首届杰出数据库工程师评选获奖名单
- eclipse调试模式不能显示源码解决
- ibatis缓存机制cacheModel
- mybatis 根据参数映射对应模型