HUD1285 确定比赛名次 拓扑排序
来源:互联网 发布:厦门软件测试工资待遇 编辑:程序博客网 时间:2024/05/16 14:59
题目大意:输入每两人间的先后关系,让你确定出一个序号最小的排名。
注意这里不属于无前驱顶点优先的拓扑排序,这点由样例就可以看出,如果是按无前驱顶点优先的话,那么对于 1 2,2 3,4 3这样的输入,结果应该是 1 4 2 3 的,按最
小序号输出才是1 2 4 3。我们可以考虑用邻接矩阵来存储图,这样直接按自然序遍历就行了。
代码如下:
#include <cstdio>#include <cstring>using namespace std;int map[501][501];bool s[501];int ind[501];int num;void Top_sort(int n){ while(num<n) { int i; for(i=1;i<=n;i++) if(ind[i]==0&&s[i]) break; s[i]=false; if(num) printf(" "); printf("%d",i); num++; for(int j=1;j<=n;j++) if(map[i][j]) ind[j]--; }}int main(){ int n,m; int a,b; while(scanf("%d%d",&n,&m)!=-1) { memset(map,0,sizeof(map)); memset(ind,0,sizeof(ind)); memset(s,true,sizeof(s)); for(int i=1;i<=m;i++) { scanf("%d%d",&a,&b); if(!map[a][b]) ind[b]++; map[a][b]=1; } num=0; Top_sort(n); printf("\n"); } return 0;}
0 0
- HUD1285 确定比赛名次 拓扑排序
- 拓扑排序-- 确定比赛名次
- HDOJ 1285:确定比赛名次 拓扑排序
- 【拓扑排序】 hdu1285 确定比赛名次
- hdu 确定比赛名次(拓扑排序)
- 确定比赛名次(拓扑排序)
- HDU 1285 拓扑排序 确定比赛名次
- HDU 1285 拓扑排序-- 确定比赛名次
- HDOJ1285 确定比赛名次(拓扑排序)
- 确定比赛名次 (拓扑排序)
- hdu 1285 确定比赛名次(拓扑排序)
- hdu1285 确定比赛名次 拓扑排序
- 确定比赛名次(hdu1285拓扑排序)
- hdu1285 确定比赛名次 (拓扑排序)
- HDU1285 确定比赛名次 拓扑排序
- hdu_1285 确定比赛名次 (拓扑排序)
- 拓扑排序——确定比赛名次
- hdu1285 确定比赛名次(拓扑排序)
- 命令行执行java程序
- gnustep objective-c 引用计数浅析
- Spring核心技术学习总结
- 12、Libgdx的图像之全屏和垂直同步
- oracle聚合函数
- HUD1285 确定比赛名次 拓扑排序
- ThinkPad T410S 上 Ubuntu 14.04 实现指纹识别登录
- PayPal账户类型-PayPal个人账户可以接受美金付款吗?
- POJ 2488 A Knight's Journey (DFS + 记录路径)
- 软件长寿法则,记住这7条
- U3D + KBE Demo传输消息流程图文解析【客户端】
- Linux终端显示[-bash-4.x]的解决办法
- android-Ultra-Pull-to-Refresh下拉刷新
- PayPal怎么注册?PayPal注册流程,PayPal高级账户,PayPal企业账户