HDU1285_拓扑排序
2015-03-23 20:41
169 查看
拓扑排序的水题,题意是确定比赛的名次,每一次将输的人的入度加一,然后就是拓扑排序的模板套路了,记住输入的时候可能有重边,贴代码:
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int Map[600][600], Head[600], Hash[600]; int main() { int n, m; while(~scanf("%d%d", &n, &m)) { int p1, p2; memset(Hash, 0, sizeof(Hash)); memset(Head, 0, sizeof(Head)); memset(Map, 0, sizeof(Map)); for(int i=0; i<m; ++i) { scanf("%d%d", &p1, &p2); if(!Map[p1][p2]) { Map[p1][p2] = 1; ++Hash[p2]; } } int x=0; while(x < n) { for(int i=1; i<=n; ++i) { if(Hash[i] == 0) { --Hash[i]; Head[x++] = i; for(int j=1; j<=n; ++j) { if(Map[i][j]) --Hash[j]; } break; } } } for(int i=0; i<x; ++i) printf(i==x-1 ? "%d\n" : "%d ", Head[i]); } return 0; }个人觉得这个题就是考察拓扑排序的,貌似用其它的方法就不怎么对,反正我是没有做对,如果哪位大神不是用拓扑排序做的请告诉本渣一下!跪谢!!
相关文章推荐
- HDU1285 拓扑排序
- HDU1285 确定比赛名次 【拓扑排序】
- hdu1285 拓扑排序 java实现
- hdu1285 确定比赛名次 (拓扑排序)
- HDU1285确定比赛名次(拓扑排序)
- 拓扑排序例题 hdu1285 hdu3342
- 拓扑排序(hdu1285)入门
- hdu1285 简单拓扑排序
- hdu1285 确定比赛名次(拓扑排序)
- hdu1285确定比赛名次 (拓扑排序)
- hdu1285 拓扑排序(裸)
- HDU1285确定比赛名次【拓扑排序】
- HDU1285确定比赛名次(拓扑排序)
- 【hdu1285】【拓扑排序】 确定比赛名次
- HDU1285---确定比赛名次 (拓扑排序)
- hdu1285 确定比赛名次 拓扑排序
- hdu1285 确定比赛名次 (拓扑排序)
- hdu1285 - 确定比赛名次 (拓扑排序)
- HDU1285 确定比赛名次(拓扑排序)
- hdu1285确定比赛名次(最简单的拓扑排序)