确定比赛名次---hdu1285(拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285
拓扑序就是求一个序列 数 a 出现在数 b 前面,最终输出满足条件的序列即可;
过程就是每次选取入度为0的数每次把它计入拓扑序列,并把与该点相连的所有边删除即可;
由于拓扑序不是唯一的本题要求序号小的放前面,所以可以用优先队列;
#include <math.h>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <queue>
#define met(a, b) memset(a, b, sizeof(a))
using namespace std;
#define N 510 struct node
{
int x;
bool friend operator < (node a, node b)
{
return a.x > b.x;///小的先出来;
}
}; int G[N][N], du[N], n, m, u, v, ans[N]; void topo()
{
priority_queue<node>Q;
node p, q;
for(int i=; i<=n; i++)
{
if(du[i]==)
p.x=i,
Q.push(p);
}
int k=;
while(Q.size())
{
p=Q.top();Q.pop();
ans[k++] = p.x; for(int i=; i<=n; i++)
{
if(G[p.x][i])
{
du[i]--;
if(du[i]==)
q.x=i,Q.push(q);
}
}
}
} int main()
{
while(scanf("%d %d", &n, &m)!=EOF)
{
met(G,);met(ans, );
for(int i=; i<=m; i++)
{
scanf("%d %d", &u, &v);
if(G[u][v]==)
{
G[u][v] = ;
du[v]++;
}
}
topo(); for(int i=; i<=n; i++)
printf("%d%c", ans[i], i==n?'\n':' ');
}
return ;
}
确定比赛名次---hdu1285(拓扑排序)的更多相关文章
- 确定比赛名次---HDU1285(拓扑排序)
http://acm.hdu.edu.cn/showproblem.php?pid=1285 题目大意: 给你每场比赛的成绩,让你根据成绩把排名弄出来 分析: 本来我是用普通方法写的,然后就一直wa, ...
- hdu1285 确定比赛名次(拓扑排序)
确定比赛名次 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- hdu1285 确定比赛名次【拓扑排序】
题目链接 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- hdu 确定比赛名次(拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1285:确定比赛名次(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- hdoj-1285-确定比赛名次(拓扑排序)
题目链接 /* Name:hdoj-1285-确定比赛名次 Copyright: Author: Date: 2018/4/11 15:59:18 Description: 标准的拓扑排序模板题,注意 ...
- [ACM] hdu 1285 确定比赛名次 (拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- hdoj 1285 确定比赛名次【拓扑排序】
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- HDU 1285 确定比赛名次(拓扑排序)题解
Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委 ...
- HDU 1285 确定比赛名次(拓扑排序模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 题目大意:有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行 ...
随机推荐
- linux中mysql安装的问题
Starting MySQL.Manager of pid-file quit without updating file.[FAILED] 已解决 这是由于系统中/etc/my.cnf文件本身存在或 ...
- am335x 内核频率 ddr3频率 电压调整
由Makefile可知,SPL的入口在u-boot-2011.09-psp04.06.00.08\arch\arm\cpu\armv7\start.S中 SPL的功能无非是设置MPU的Clock.PL ...
- [转]解决Cannot change version of project facet Dynamic web module to 2.5
我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一 ...
- 实战c++中的vector系列--知道emplace_back为何优于push_back吗?
上一篇博客说道vector中放入struct.我们先构造一个struct对象.再push_back. 那段代码中,之所以不能使用emplace_back,就是由于我们定义的struct没有显示的构造函 ...
- arduino波特率
波特率,也就是数据通信的速度,它是目前比较流行的传输速率.以这个速度通信的话,每发送一个字节(Byte)到控制端需要的时间大概是1毫秒.需要注意的是,为了精确控制四轴的平衡,我们需要尽量在短时间内多读 ...
- Javascript事件监听
FireFox : addEventListener()方法 IE : attachEvent()方法 为HTML元素添加一个事件监听, 而不是直接对元素的事件属性(如:onclick.onmouse ...
- Spring Cloud 架构
我们从整体来看一下Spring Cloud主要的组件,以及它的访问流程 1.外部或者内部的非Spring Cloud项目都统一通过API网关(Zuul)来访问内部服务. 2.网关接收到请求后,从注册中 ...
- (转)FFMPEG-数据结构解释(AVCodecContext,AVStream,AVFormatContext)
AVCodecContext 这是一个描述编解码器上下文的数据结构,包含了众多编解码器需要的参数信息 如果是单纯使用libavcodec,这部分信息需要调用者进行初始化:如果是使用整个FFMPEG库 ...
- linux下面bin,sbin不理解的查阅
在一下的文件中得到答案, 突然想想自己有点傻,自己有代码,为什么不自己查看一下代码呢 http://blog.csdn.net/ithomer/article/details/9839957
- JavaWeb的编码问题
http://blog.csdn.net/yuhaiqiang_123/article/details/51811419