杭电1285——确定比赛名次
来源:互联网 发布:高达00q全刃式淘宝 编辑:程序博客网 时间:2024/05/06 00:43
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285
这是写的第一个拓扑排序题目,算是水题吧,能过就好。
但还是错了几次:刚开始不知道如何处理输出的顺序问题,原来改用优先队列(priority_queue)就行了,也是百度才知道输入可能存在重复的边。
#include<iostream>
#include<sstream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
struct node{
int n;
bool operator <(const node &a) const{
return a.n<n;
}
}o;
using namespace std;
int N,M,map[550][550],du[550];
void top_order(){
priority_queue<node> q;
for(int i=1;i<=N;i++)
if(!du[i]) {
o.n=i;
q.push(o);
}
while(!q.empty())
{
int tmp=q.top().n;
q.pop();
cout<<tmp;
for(int i=1;i<=N;i++)
if(map[tmp][i])
{
du[i]--;
if(!du[i]){
o.n=i;
q.push(o);
}
}
if(!q.empty()) cout<<" ";
else cout<<endl;
}
}
int main(){
while(cin>>N)
{
cin>>M;
if(!N && !M) break;
memset(map,0,sizeof(map));
memset(du,0,sizeof(du));
for(int i=0;i<M;i++)
{
int tx,ty;
cin>>tx>>ty;
if(!map[tx][ty]){
map[tx][ty]=1;
du[ty]++;
}
}
top_order();
}
return 0;
}
- 杭电1285——确定比赛名次
- 杭电 1285 确定比赛名次
- 杭电1285确定比赛名次
- 杭电1285确定比赛名次
- 杭电-1285确定比赛名次(topo)
- 【杭电】[1285]确定比赛名次
- 【杭电1285】确定比赛名次
- 杭电1285确定比赛名次
- 杭电ACM 1285 确定比赛名次(拓扑排序)
- 杭电acm oj 1285 确定比赛名次
- 杭电 1285 确定比赛名次(拓扑排序)
- 确定比赛名次 HDU杭电1285 【拓扑排序】
- 杭电 1285 确定比赛名次 【拓扑排序】
- 杭电 1285 确定比赛名次(拓扑排序)
- 拓扑排序杭电 1285确定比赛名次
- 杭电1285 确定比赛名次(拓扑排序)
- 杭电-1285 确定比赛名次(模板)
- 1285确定比赛名次
- Linux NFS安装与配置
- Servlet 和 HttpServlet
- Linux Guide: How to Install Thunderbird 3
- 历史可以预见现在
- Web应用开发和SSH
- 杭电1285——确定比赛名次
- vim使用积累
- 第一次参加面试,理所应当的没成功
- MongoDB入门学习(1 )
- [CSAPP-II] 链接[符号解析和重定位] 静态链接 动态链接 动态链接接口
- SqlLocalDB简介
- URL encode和乱码解决方案
- 02-1. 厘米换算英尺英寸(15)
- vim_mouse setup