HDU 1285 确定比赛名次 (拓扑排序)
来源:互联网 发布:js中怎么删除数组元素 编辑:程序博客网 时间:2024/06/17 18:57
链接 :
http://acm.hdu.edu.cn/showproblem.php?pid=1285
拓扑排序模板 。
#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <sstream>#include <cstdio>#include <vector>#include <cmath>#include <queue>#include <stack>#include <set>#include <map>#define lson o<<1, l, m#define rson o<<1|1, m+1, r#define PII pair<int, int>#define ALL(x) x.begin(),x.end()#define mem(a) memset(a,0,sizeof(a))typedef long long ll;const double pi = acos(-1.0);const int MAX = 0x3f3f3f3f;const ll mod = 1000000007ll;const int N = 250005;using namespace std;struct C { int ne, to;} e[N];int n, m;int du[505], he[505];void add(int id, int x, int y) { e[id].to = y; e[id].ne = he[x]; he[x] = id;}int main() { // freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout); while(cin >> n >> m) { mem(du); memset(he, -1, sizeof(he)); for(int i = 1; i <= m; i++) { int x, y; scanf("%d%d", &x, &y); du[y]++; add(i, x, y); } int cnt = 0; while(1) { for(int i = 1; i <= n; i++) if(du[i] == 0) { printf("%d", i); cnt++; if(cnt < n) printf(" "); else { puts(""); break; } du[i]--; for(int j = he[i]; j != -1; j = e[j].ne) { du[ e[j].to ]--; } break; } if(cnt == n) break; } } return 0; }
0 2
- HDU 1285 拓扑排序 确定比赛名次
- HDU 1285 拓扑排序-- 确定比赛名次
- hdu 1285 确定比赛名次(拓扑排序)
- HDU 1285 确定比赛名次 拓扑排序
- 【HDU】1285 确定比赛名次 拓扑排序
- HDU【1285】确定比赛名次---拓扑排序
- HDU-1285--确定比赛名次 (拓扑排序)
- 【拓扑排序】HDU 1285--- 确定比赛名次
- hdu 1285 确定比赛名次 拓扑排序
- hdu 1285 确定比赛名次 拓扑排序
- hdu 1285 确定比赛名次 拓扑排序
- HDU 1285 确定比赛名次 拓扑排序
- HDU 1285 - 确定比赛名次 <拓扑排序>
- 拓扑排序:hdu 1285 确定比赛名次
- 拓扑排序 HDU 1285 确定比赛名次
- Hdu 1285 确定比赛名次,拓扑排序
- hdu 1285 确定比赛名次(拓扑排序)
- hdu 1285 确定比赛名次(拓扑排序)
- Python遍历字典的四种方法对比
- JavaScript学习笔记之DOM扩展
- HDU 1075 字典树
- VIM无法安装的问题
- 新建cocos2dx-lua项目 和 HelloLua分析
- HDU 1285 确定比赛名次 (拓扑排序)
- POJ - 2010 Moo University - Financial Aid 贪心+优先队列
- memcpy函数用法
- HDU 1251 字典树
- FASDFASDFQWERQWE
- HDU 1394 线段树
- HDU 1087 DP
- LINUX兴趣小组面试总结
- jar -help