HDU 1285
#include<stdio.h>
#include<string.h>
int degree[505],vis[505],map[501][501];
int main()
{
int n,m,a,b,i,j,min;
while(~scanf("%d%d",&n,&m))
{
memset(degree,0,sizeof(degree));
memset(vis,0,sizeof(vis));
memset(map,0,sizeof(map));
while(m--)
{
scanf("%d%d",&a,&b);
if(!map[a][b]) //重边不计!(此题测试数据有重边);
{
degree[b]++;
map[a][b] = 1;
}
}
min = 501;
for(i = 0;i < n;i ++)
{
for(j = 1;j <= n;j ++) //寻找入度为0且编号最小的边;
{
if(degree[j] == 0 && j < min && vis[j] == 0)
min = j;
}
vis[min] = 1; //把该点销毁;
if(i != n-1)
printf("%d ",min);
else
printf("%d\n",min);
for(j = 1;j <= n;j ++) // 处理与该点相关的并以该点作为入度的所有点;
{
if(j != min && vis[j] == 0)
{
if(map[min][j] == 1)
{
degree[j]--;
map[min][j] = 0; //销毁边;
}
}
}
min = 501;
}
}
return 0;
}
#include<string.h>
int degree[505],vis[505],map[501][501];
int main()
{
int n,m,a,b,i,j,min;
while(~scanf("%d%d",&n,&m))
{
memset(degree,0,sizeof(degree));
memset(vis,0,sizeof(vis));
memset(map,0,sizeof(map));
while(m--)
{
scanf("%d%d",&a,&b);
if(!map[a][b]) //重边不计!(此题测试数据有重边);
{
degree[b]++;
map[a][b] = 1;
}
}
min = 501;
for(i = 0;i < n;i ++)
{
for(j = 1;j <= n;j ++) //寻找入度为0且编号最小的边;
{
if(degree[j] == 0 && j < min && vis[j] == 0)
min = j;
}
vis[min] = 1; //把该点销毁;
if(i != n-1)
printf("%d ",min);
else
printf("%d\n",min);
for(j = 1;j <= n;j ++) // 处理与该点相关的并以该点作为入度的所有点;
{
if(j != min && vis[j] == 0)
{
if(map[min][j] == 1)
{
degree[j]--;
map[min][j] = 0; //销毁边;
}
}
}
min = 501;
}
}
return 0;
}
HDU 1285的更多相关文章
- ACM: HDU 1285 确定比赛名次 - 拓扑排序
HDU 1285 确定比赛名次 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
- 拓扑排序 - hdu 1285(普通和优先队列优化)
2017-09-12 19:50:58 writer:pprp 最近刚开始接触拓扑排序,拓扑排序适用于:无圈图的顶点的一种排序, 用来解决有优先级别的排序问题,比如课程先修后修,排名等. 主要实现:用 ...
- HDU.1285 确定比赛名次 (拓扑排序 TopSort)
HDU.1285 确定比赛名次 (拓扑排序 TopSort) 题意分析 裸的拓扑排序 详解请移步 算法学习 拓扑排序(TopSort) 只不过这道的额外要求是,输出字典序最小的那组解.那么解决方案就是 ...
- HDU 1285 确定比赛排名 (数组实现 )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1285 确定比赛名次 拓扑排序模板题
http://acm.hdu.edu.cn/showproblem.php?pid=1285 #include <cstdio> #include <cstdlib> #inc ...
- hdu 1285 确定比赛名次 拓扑排序
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛 ...
- (拓扑)确定比赛名次 -- hdu -- 1285
http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memo ...
- HDU 1285 确定比赛名次(拓扑排序模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 题目大意:有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 确定比赛名次(简单拓扑排序)
题目链接: 传送门 确定比赛名次 Time Limit: 1000MS Memory Limit: 65536K Description 有N个比赛队(1 Input 输入有若干组,每组中的第 ...
随机推荐
- vsftpd.conf配置详解
根据 /etc/vsftpd/vsftpd.conf默认配置给出设定功能 # Example config file /etc/vsftpd/vsftpd.conf # The default c ...
- 相册弹窗(基于zepto.js)
//放大图片 $(page).on('click','.popupImage img',function () { var that = $(this); that.popupImage({ this ...
- python编程语言 函数的形参
python编程语言 函数的形参的讲解: 我在交互模式中写了个函数: def adder(**args): sum=0 for x in args.keys(): sum+=args[x] retur ...
- hdu 5648 DZY Loves Math 组合数+深搜(子集法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5648 题意:给定n,m(1<= n,m <= 15,000),求Σgcd(i|j,i&am ...
- 关于php程序员 解决问题的能力
转载于 :http://www.tuicool.com/articles/qeUfEf 这个话题老生长谈了,在面试中必然考核的能力中,我个人认为解决问题能力是排第一位的,比学习能力优先级更高.解决问题 ...
- PL/SQL — 集合及常用方法
PL/SQL中提供了常用的三种集合联合数组.嵌套表.变长数组,而对于这几个集合类型中元素的操作,PL/SQL提供了相应的函数或过程来操纵数组中的元素或下标.这些函数或过程称为集合方法.一个集合方法就是 ...
- Unity3d Shader开发(四)UsePass ,GrabPass ,SubShader Tags
(一)UsePass 命令 使用 来自另一个着色器的命名通道. Syntax 语法 UsePass "Shader/Name" 插入所有来自给定着色器中的给定名字的通道.Shade ...
- python mongodb MapReduce
# -*- coding: utf-8 -*-import osimport csvimport pymongofrom pymongo import MongoClientfrom bson.cod ...
- nodejs 第一次使用
在win7下安装与使用 1 nodejs官网下载,安装 https://nodejs.org/ 2 下载最新的 npm,在E:\nodejs\中解压 http://nodejs.org/dist/ ...
- Java Development Kit (JDK) 发展历程 及新特性
SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE. EE(J2EE),enterprise edition,企业版,使用这 ...