ACM: HDU 1285 确定比赛名次 - 拓扑排序
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
Input
Output
其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。
Sample Input
- 4 3
- 1 2
- 2 3
- 4 3
Sample Output
- 1 2 4 3
- /*/
- 拓扑排序裸题:
- 稍微加一个路径保存;
- 拓扑排序方法如下:
- (1)从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它.
- (2)从网中删去该顶点,并且删去从该顶点发出的全部有向边.
- (3)重复上述两步,直到剩余的网中不再存在没有前驱的顶点或者所有的点都排序完毕为止.
- AC代码:
- /*/
- #include"algorithm"
- #include"iostream"
- #include"cstring"
- #include"cstdlib"
- #include"string"
- #include"cstdio"
- #include"vector"
- #include"cmath"
- #include"queue"
- using namespace std;
- #define memset(x,y) memset(x,y,sizeof(x))
- #define memcpy(x,y) memcpy(x,y,sizeof(x))
- #define MX 1005
- int map[MX][MX];
- int indegree[MX];
- int print[MX];
- int main() {
- int n,m,st,ed,cnt;
- while(~scanf("%d%d",&n,&m)) {
- memset(map,0);
- memset(indegree,0);
- memset(print,0);
- for(int i=0; i<m; i++) {
- scanf("%d%d",&st,&ed);
- if(!map[st][ed]) {
- map[st][ed]++;
- indegree[ed]++;
- }
- }
- for(cnt=1; cnt<=n;) {
- int i;
- for(i=1; i<=n; i++) {
- if(!indegree[i])break;
- }
- indegree[i]=-1;
- print[cnt++]=i;
- int j;
- for(j=1; j<=n; ++j) {
- if(map[i][j]>0) {
- indegree[j]--;
- map[i][j]=-1;
- }
- }
- }
- int first=1;
- for(int i=1; i<cnt; i++) {
- if(first)first=0;
- else printf(" ");
- printf("%d",print[i]);
- }
- puts("");
- }
- return 0;
- }
ACM: HDU 1285 确定比赛名次 - 拓扑排序的更多相关文章
- HDU.1285 确定比赛名次 (拓扑排序 TopSort)
HDU.1285 确定比赛名次 (拓扑排序 TopSort) 题意分析 裸的拓扑排序 详解请移步 算法学习 拓扑排序(TopSort) 只不过这道的额外要求是,输出字典序最小的那组解.那么解决方案就是 ...
- hdu 1285 确定比赛名次 拓扑排序
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛 ...
- [ACM] hdu 1285 确定比赛 (拓扑排序)
确定比赛 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU 1285 确定比赛名次 拓扑排序模板题
http://acm.hdu.edu.cn/showproblem.php?pid=1285 #include <cstdio> #include <cstdlib> #inc ...
- [ACM] hdu 1285 确定比赛名次 (拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- hdu 1285 确定比赛名次 (拓扑)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- HDOJ 1285 确定比赛名次(拓扑排序)
Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委 ...
- 正向与反向拓扑排序的区别(hdu 1285 确定比赛名次和hdu 4857 逃生)
确定比赛名次 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- HDU 1285 确定比赛名次(拓扑排序模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 题目大意:有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行 ...
随机推荐
- 蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)
算法训练 Torry的困惑(基本型) 时间限制:1.0s 内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突 ...
- Python科学计算发行版—Anaconda
Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些模块可能又依赖 ...
- 修改Apache配置文件开启gzip压缩传输
转自:http://down.chinaz.com/server/201202/1645_1.htm 最近无事研究一些Web的优化,用工具page speed检测网站时发现还没有开启gzip压缩,于是 ...
- 关于Application Insights遥测功能使用【遇到问题】
简介:Application Insights是微软发布的一个在线服务,可以监测自己的网站应用,进行性能管理以及使用分析. Application Insights功能一开始是出现在Visualstu ...
- POJ 1625 Censored!(AC自动机+DP+高精度)
Censored! Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 6956 Accepted: 1887 Descrip ...
- 自己yy的Splay
#include <iostream> #include <cstdio> #include <queue> using namespace std; ; stru ...
- 封装用className选元素
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 一张图入门python
- Ipython console in Spyder stuck on “connecting to kernel”
简短地记录下,今天排除的spyder的BUG, 现象:打开Spyder时其他正常,但是Ipython console 不能正常获取到kernel,一直转圈,显示“connecting to kerne ...
- .NET方向高级开发人员面试时应该事先考虑的问题
(澄清一下,我发帖的目的不是用来专门给人评价这些问题的好坏的,实际上我所在 的公司就考察这些问题.而能够基本上答出来的可以说百里挑一.如果各位觉得这些问题很简单,那么基本上在.NET面试环节就没有什么 ...