拓扑排序
拓扑排序是针对有向图进行的,拓扑排序有两个作用:(1)针对某种定义好的“小于”关系为结点排序;(2)判断一个有向图中是否存在有向环。我们可以利用DFS来完成拓扑排序。
下面是判断一个有向图g中是否含有有向环的代码:
#define N 100+10
int c[N], g[N][N];//利用二维数组g保存有向图
int n;//结点数,下标从0开始
bool toposort(...
分类:
编程语言 时间:
2015-04-02 18:59:12
阅读次数:
158
题目链接:http://hihocoder.com/problemset/problem/1114终于开始刷hihocoder了~ 1 /* 2 * Problem: hihocoder #1114 3 * Author: SHJWUDP 4 * Created Time: 2015/4...
分类:
其他好文 时间:
2015-04-02 18:13:10
阅读次数:
120
http://hihocoder.com/contest/hiho39/problemsjava.util.*;
Main{
=;
mergSort(List<Long>a,l,r){
mid;
(l<r){
mid=(l+r)/;
(a,l,mid);
(a,mid+,r);
List<Long>b1,b2;
b1=ArrayList<Long>(a.subList(l,mid+));
b2=ArrayList<Long>(a.subList(mid..
分类:
编程语言 时间:
2015-04-02 16:39:09
阅读次数:
160
tarjan缩点+topsort+状态压缩~...
分类:
Web程序 时间:
2015-04-02 16:36:15
阅读次数:
164
1.题目描述:点击打开链接
2.解题思路:本题利用拓扑排序解决。拓扑排序适用于有向图,图中的结点满足给定的“连接”法则而形成一张有向图,通过拓扑排序,可以判断该图中是否含有有向环。本题如果直接按照题意去一个个地尝试拼接正方形,会很耗费时间,因为n的数目会非常大。如果我们进一步抽象,将正方形的标号看做一个拼接点,由于00不能作为拼接点,因此总共有26*2=52个点,那么如果存在另一个正方形B可以和...
分类:
其他好文 时间:
2015-04-02 15:16:04
阅读次数:
130
最近申请了微软的暑假实习,4号就要在线笔试了,在线测试系统用的是http://hihocoder.com/,今天试手做了一道题。
【题目】
原题链接:http://hihocoder.com/contest/hiho39/problem/1
输入
第1行:1个整数N,表示数组长度。
第2行:N个整数,表示数组的元素a[i],1≤a[i]≤2^31-1。
输出
第1行...
分类:
编程语言 时间:
2015-04-02 01:21:08
阅读次数:
169
题目链接:http://poj.org/problem?id=2367
题目大意:就是进行拓扑排序,先给你一个数n,代表1~n,对于每个数有一系列的指向,最后将这些数进行排列出来。。就是简单的拓扑排序。
首先拓扑排序应该有两种实现的方法。。
一种是用dfs进行每个节点的搜索,最后进行回溯,这样的话很容易就能明白先找出来的应该是后面的数,而最后找出来的应该是之前的数,因为是回溯出来的嘛。。所以...
分类:
编程语言 时间:
2015-04-01 22:07:50
阅读次数:
168
原题地址终于做到线段树的题了,因为建树、更新、查询都是递归操作,所以其实挺好写的。用数组存的树,记得MAX_NODE开成两倍叶节点数大小,否则RE啊。。不要问我是怎么知道的。代码: 1 #include 2 #include 3 using namespace std; 4 5 #d...
分类:
其他好文 时间:
2015-04-01 21:40:48
阅读次数:
136
拓扑排序
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。
一个有向图无法拓扑排序时只有一种情况:该有向图中存在环。下面给出简单的判定有向图是否可拓扑排序的代码:
题意:给你一个N点和M条有向边的图,问...
分类:
编程语言 时间:
2015-04-01 17:38:34
阅读次数:
182