hdu 1285 确定比赛名次
2011-04-25 20:44
197 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1285
这是一道拓扑排序的问题,题目比较简单,而且都提醒了所有点是连通的也就不需要用并查集判断是否连通了,不过要注意重边,万恶的重边,WA了几次,我原来写的代码冗余太大,看了一下别的童鞋写的,又给自己的代码优化了一下~~~~
这是一道拓扑排序的问题,题目比较简单,而且都提醒了所有点是连通的也就不需要用并查集判断是否连通了,不过要注意重边,万恶的重边,WA了几次,我原来写的代码冗余太大,看了一下别的童鞋写的,又给自己的代码优化了一下~~~~
#include<iostream> #include<string.h> #include<string> #include<stdio.h> using namespace std; int map[501][501]; int team[501]; int main() { int N,M; while(scanf("%d%d",&N,&M)!=EOF) { //初始化 memset(map,0,sizeof(map)); memset(team,0,sizeof(team)); //录入数据 int P1,P2; for(int i=1;i<=M;++i) { scanf("%d%d",&P1,&P2); if(!map[P1][P2]) { map[P1][P2]=1; team[P2]++; } } // for(int i=1;i<=N;++i) { //找出最小的点 int min_num=1000; for(int j=1;j<=N;++j) { if(team[j]==0) { team[j]=-1; min_num=min(min_num,j); break; } } if(min_num==1000) break; if(i==1) printf("%d",min_num); else printf(" %d",min_num); for(int k=1;k<=N;++k) if(map[min_num][k]==1) team[k]--; } printf("/n"); } return 0; }
相关文章推荐
- 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 确定比赛名次
- hdoj 1285 确定比赛名次【拓扑】
- hdu 1285 确定比赛名次 (拓扑排序)
- hdu 1285 确定比赛名次 拓扑排序 解题报告
- HDU 1285 确定比赛名次(简单拓扑排序)
- HDU 1285 确定比赛名次【拓扑排序】
- HD--1285 确定比赛名次