拓扑排序 (Ordering Tasks UVA - 10305)
题目描述:

题目思路:
1.依旧是DFS
2.用邻接矩阵实现图
3.需要判断是否有环
AC代码
#include <iostream>
#include <cstring>
#include <stack>
using namespace std; const int maxn = ;
int G[maxn][maxn],tag[maxn],m,n ;
stack<int> s ; void dfs(int u)
{
tag[u] = - ;//正在访问
for(int v = ;v <= n;v ++) if(G[u][v] && !tag[v])
dfs(v) ;
s.push(u) ;
tag[u] = ;//访问过了
} int main(int argc, char *argv[])
{
while(scanf("%d%d",&n,&m) == && m || n)
{
int u,v;
for(int i = ;i < m;i ++){
scanf("%d%d",&u,&v);
G[u][v] = ; //用邻接矩阵来实现图
}
memset(tag,,sizeof(tag)) ;
for(int i = ;i <= n;i ++)
if(!tag[i]) dfs(i) ;
while(!s.empty())
{
printf("%d",s.top());
s.pop() ;
printf("%c",s.size()>?' ':'\n');
}
}
return ;
}
拓扑排序 (Ordering Tasks UVA - 10305)的更多相关文章
- [拓扑排序]Ordering Tasks UVA - 10305
拓扑排序模版题型: John has n tasks to do.Unfortunately, the tasks are not independent and the execution of o ...
- Ordering Tasks UVA - 10305 图的拓扑排序
John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...
- UVa 10305 (拓扑排序) Ordering Tasks
题意: 经典的拓扑排序.有n个任务,然后某些任务必须安排在某些任务前面完成,输出一种满足要求的序列. 分析: 拓扑排序用离散里面的话来说就是将偏序关系拓展为全序关系.我们将“小于”这种关系看做一条有向 ...
- 【紫书】Ordering Tasks UVA - 10305 拓扑排序:dfs到底再输出。
题意:给你一些任务1~n,给你m个数对(u,v)代表做完u才能做v 让你给出一个做完这些任务的合理顺序. 题解:拓扑排序版题 dfs到底再压入栈. #define _CRT_SECURE_NO_WAR ...
- Ordering Tasks UVA - 10305(拓扑排序)
在一个有向图中,对所有的节点进行排序,要求没有一个节点指向它前面的节点. 先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一. 一直做改操作,直到所有的节点都被 ...
- UVA.10305 Ordering Tasks (拓扑排序)
UVA.10305 Ordering Tasks 题意分析 详解请移步 算法学习 拓扑排序(TopSort) 拓扑排序的裸题 基本方法是,indegree表示入度表,vector存后继节点.在tops ...
- UVa 10305 - Ordering Tasks (拓扑排序裸题)
John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...
- Uva 10305 - Ordering Tasks 拓扑排序基础水题 队列和dfs实现
今天刚学的拓扑排序,大概搞懂后发现这题是赤裸裸的水题. 于是按自己想法敲了一遍,用queue做的,也就是Kahn算法,复杂度o(V+E),调完交上去,WA了... 于是检查了一遍又交了一发,还是WA. ...
- UVA - 10305 Ordering Tasks(拓扑排序)
题意:给定优先关系进行拓扑排序. 分析:将入度为0的点加入优先队列,并将与之相连的点入度减1,若又有度数为0的点,继续加入优先队列,依次类推. #pragma comment(linker, &quo ...
随机推荐
- MVC验证码生成类库
public class ValidateCode { /// <summary> /// 验证码的最大长度 /// </summary> public int MaxLeng ...
- easy-im:一款基于netty的即时通讯系统
介绍 easy-im是面向开发者的一款轻量级.开箱即用的即时通讯系统,帮助开发者快速搭建消息推送等功能. 基于easy-im,你可以快速实现以下功能: + 聊天软件 + IoT消息推送 基本用法 项目 ...
- Web—01-快速入门:HTML
html概述和基本结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- Asp.net 中 OnClientClick 与 OnClick 的区别
OnClientClick 是客户端事件处理方法,一般采用JavaScript来进行处理,也就是直接在IE端运行,一点击就运行. OnClick 是服务器端事件处理方法,在服务器端也就是IIS中运行, ...
- 学习 Linux_kernel_exploits 小记
Linux_kernel_exploits+ 功能:自动生成UAF类型漏洞exp文件的工具,目前缺少文档介绍,可以参考test文件下的使用实例,但是源码中缺少dataflowanalyzer模块+ 相 ...
- Django学习笔记2
1.BookInfo.objects.all() objects:是Manager类型的对象,用于与数据库进行交互 当定义模型类时没有指定管理器,则Django会为模型类提供一个名为objects的管 ...
- jQuery中的easyui
一,easyui---datagrid绑定数据的简单测试: 1.数据库中的UserInfo表及数据测试: 2.DAL层: //分页,模糊查询(pageNum-1)*pageSize+1----从第几条 ...
- canvas绘制圆角头像
如果你想绘制的网页包含一个圆弧形的头像的canvas图片,但是头像本身是正方形的,需要的方法如下:首先, 拿到头像在画布上的坐标和宽高:(具体怎么获取不在此做具体介绍) 使用canvas绘制圆弧动画 ...
- Throwable类
1.Throwable是所有异常的基类(父类),两个子类Error和Exception ①Error:java运行时系统的内部错误或资源耗尽错误,应用程序不应该抛出这种类型的对象,一旦发生这种异常除了 ...
- JS通用弹窗,确定,取消可以回调方法。
<html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/j ...