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 输入有若干组,每组中的第 ...
随机推荐
- <UNIX环境高级编程>文件共享及fork函数
UNIX系统支持在不同进程间共享打开文件.内核使用3种数据结构表示打开文件,它们之间的关系决定了文件共享方面一个进程对另一个进程可能产生的影响. 内核维持了3个表,即进程表,文件表和v节点表.具体如下 ...
- Java添加事件的四种方式
Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动) /** * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器 * * @author ...
- Memcached 缓存个体,对象,泛型,表
转自 :http://www.cnblogs.com/panshengqiang/p/3605599.html 下面是两位大牛关于Memcached的介绍:大家可以看看 http://zhoufoxc ...
- PERL代码摘录
1. 语法与数据结构 #嵌套哈希的赋值和取值 $HashTable{$key} = [@Array] #这个是赋值 @Array = @{ $HashTable{$key} } # 这个是取值 #Pe ...
- linux点滴:rsync
rsync(remote sync)是一款远程同步工具,可以实现全量备份.增量备份.本地备份.删除,核心功能是远程数据备份. 工作原理 rsync核心算法 1.分块checksum算法 首先,把文件平 ...
- 在Ubuntu Linux下怎样安装QQ
最近好多人在吐槽Linux下上QQ简直就是煎熬,网页版的不方便,网上各种版本的QQ要么是功能不全.要么是界面丑到爆,要么是运行不稳定.那么这次为大家带来一个功能完整.运行稳定的wineQQ安装过程. ...
- 【JTA】JTA允许应用程序执行分布式事务处理
JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据.JDBC驱动程序的JTA支持极大地增强了数据访问能力. htt ...
- JVM里面hashtable和hashmap实现原理
JVM里面hashtable和hashmap实现原理 文章分类:Java编程 转载 在hashtable和hashmap是java里面常见的容器类, 是Java.uitl包下面的类, 那么Hash ...
- DB天气app冲刺第五天
今天上了软工的一节课,感觉自己前几天的方向错了,而且基本是在耗时间,因为虽然一直在努力的看书 编代码,但效果不明显.所以今天要好好想一个新的方向重新来过. 明天送上计划.
- C#.net winform 控件和皮肤大全
1. 东日IrisSkin IrisSkin 共有两个版本,一个是IrisSkin.dll 用于.Net Framework1.0/1.1 和IrisSkin2.dll 用于.Net Framewor ...