确定比赛名次---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 SSH登录服务器报ECDSA host key "ip地址" for has changed and you have requested strict checking.错误
Linux SSH命令用了那么久,第一次遇到这样的错误:ECDSA host key "ip地址" for has changed and you have requested ...
- VBA学习笔记(1)----VBA对象属性方法
'VBA对象 'VBA中的对象其实就是我们操作的具有方法.属性的excel中支持的对象 'Excel中的几个常用对象表示方法 '1.工作簿 ' Workbooks 代表工作簿集合,所有的工作簿,Wor ...
- 整合quickx到普通cocos2dx
quickx是对cocos2dx的lua扩展,它做了一些C++的扩展,同时还在lua做了一些封装, 让用lua开发cocos2dx更快,中文站http://quick.cocoachina.com/. ...
- SpringMVC请求后台地址URL没有.*的几种实现方式
今天做项目,由于项目是通过扫二维码进入,二维码存放的地址不希望有 .do,而是http:xxxx:8080/xxx/yyy/zzz的格式(zzz为参数),但是项目其它请求url后面都必须要有.do,想 ...
- Tomcat Ajax跨域访问
http://ibleave60.blog.51cto.com/2669415/1208652 http://enable-cors.org/server.html 下载cors-filter-1.7 ...
- PHP——分页显示数据库内容
test.php <?php header("Content-Type:text/html;charset=utf-8"); //加载分页类 include "pa ...
- SHLVL--shell终端深度
参考:How And Why You Would Use The $SHLVL Variable SHLVL代表shell打开的深度,进程第一次打开shell时$SHLVL=1,然后在此shell中再 ...
- create the web service by yourshelf
start cmd node demo.js var http = require('http'); http.createServer(function (request, response) { ...
- 关于Android Animation的setFillBefore、setFillAfter和setFillEnable
1. 如果是独立的Animation,只有setFillAfter有效,设置为true动画结束后保持最后的状态 2. 如果是AnimationSet中的Animation,因为Animation的作用 ...
- Sqlite - constraint failed[0x1555]: UNIQUE constraint failed
执行插入操作时,出现异常constraint failed[0x1555]: UNIQUE constraint failed 意思是:sqlite 唯一约束失败 定位于某个表字段上,该字段是表的主键 ...