hdu 1285 确定比赛名次
2011-11-29 12:33
204 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1285
一开始模拟做的,但是不知道错哪了。。后面 看题解才知道要用拓扑排序。。
对于拓扑排序主要分成两步:
第一步:选择一个入度为0的顶点并输入它;
第二步:从网中删去该节点,并且删去从该顶点发出的全部有向边。
重复一二。直到网中所有点已输出。
下面是AC代码:
一开始模拟做的,但是不知道错哪了。。后面 看题解才知道要用拓扑排序。。
对于拓扑排序主要分成两步:
第一步:选择一个入度为0的顶点并输入它;
第二步:从网中删去该节点,并且删去从该顶点发出的全部有向边。
重复一二。直到网中所有点已输出。
下面是AC代码:
//拓扑排序。 #include<iostream> using namespace std; int team[501][501]; int mark[501]; int main() { int n,m; int i,a,b; int t,top; while(cin>>n>>m) { memset(team,0,sizeof(team)); memset(mark,0,sizeof(mark)); for(i=0;i<m;i++) { cin>>a>>b; if(!team[a][b]) { team[a][b]=1; mark[b]++; } } for(i=n;i>=1;i--) if(!mark[i]) top=i; t=1; while(t<=n-1) { printf("%d ",top); mark[top]--; t++; for(i=n;i>=1;i--) { if(team[top][i]) { mark[i]--; } } for(i=n;i>=1;i--) { if(!mark[i]) top=i; } } printf("%d\n",top); } 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 确定比赛名次(拓扑排序)
- HDU 1285--确定比赛名次【拓扑排序 && 邻接表实现】
- 【HDU】1285 - 确定比赛名次(拓扑)
- hdu 1285 确定比赛名次(拓扑排序)
- HDU 1285 确定比赛名次
- hdu 1285 确定比赛名次 (拓扑排序)
- hdu 1285 确定比赛名次