题目大意:给出N个点,M条边,要求你添加最少的边,使得这个图变成强连通分量解题思路:先找出所有的强连通分量和桥,将强连通分量缩点,桥作为连线,就形成了DAG了这题被坑了。用了G++交的,结果一直RE,用C++一发就过了。。。#include
#include #define N 20010
#define M 100010
#define min(a,b) ((a...
分类:
其他好文 时间:
2015-08-12 01:21:50
阅读次数:
134
据说是DAG的dp,强行做成图论。用spfa,松弛操作改成变长。注意状态的表示。#includeusing namespace std;#define MP make_pair#define fi first#define se secondtypedef pair pii;const int N ...
分类:
其他好文 时间:
2015-08-12 01:09:58
阅读次数:
105
描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a#includeusing namespace std;#define MAXN 1000int g[101][101],t[MAXN+1],n;int Max(int a,int b)//...
分类:
其他好文 时间:
2015-08-11 21:24:59
阅读次数:
89
转自:http://www.cnblogs.com/skywang12345/p/3711489.html拓扑排序介绍拓扑排序(Topological Order)是指,将一个有向无环图(Directed Acyclic Graph简称DAG)进行排序进而得到一个有序的线性序列。这样说,可能理解起来...
分类:
编程语言 时间:
2015-08-11 16:07:43
阅读次数:
146
问题一:矩形嵌套问题: 给定n个矩形,每个矩形有个长和宽,只有当一个矩形的长宽小于另外一个矩形的长宽时,才能嵌套在另外一个矩形内部。求出尽量多的矩形排成一行,嵌套的矩形数目最多。这个问题其实就是求最长上升子序列,只不过比较大小的时候变成了比较两个变量。#include #include #inclu...
分类:
其他好文 时间:
2015-08-10 14:47:11
阅读次数:
86
主题链接题意:给定一张有向图,问最少选择几个点能遍历全图。以及最少加入几条边使得有向图成为一个强连通图。思路:对于有向图而言,首先求出有几个强连通分量,之后将每一个强连通分量缩点,形成DAG。本题开头第一句就说图是连通的了。之后想要遍历整张图的话。仅仅要找出入度为0的点有几个,而加入边的数量就取决于...
分类:
Web程序 时间:
2015-08-09 22:11:32
阅读次数:
126
题目大意:给出N个命题,要求你证明这N个命题的等价性比如有4个命题a,b,c,d,我们证明ab, bc,cd,每次证明都是双向的,因此一共用了6次推导
如果换成证明a->b,b->c,c->d,d->a,每次证明都是单向的,而只需4次就可以证明所有命题的等价性
现在给出M个命题证明,问还需要证明几个,才可以保证N个命题等价解题思路:命题的等价,就相当于证明点到点之间是互相连通。...
分类:
其他好文 时间:
2015-08-08 00:07:36
阅读次数:
108
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。
一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工...
分类:
编程语言 时间:
2015-08-08 00:01:45
阅读次数:
187
题目大意:给出一张有向图G,求一个结点数最大的结点集,使得该点集中任意两个结点u和v满足:
要么u可到达v,要么v可以到达u(u和v互相可达也可以)解题思路:u和v相互可达的时候,就是两个结点在同一个强连通分量内的时候
首先要保证集合里面的点可达:强连通分量就满足集合内的点都相互可达。所以第一件事就是找出所有的强连通分量,并统计出每个强连通分量内的结点数然后找出每个强连通分量之间的关系,也就是找...
分类:
其他好文 时间:
2015-08-07 22:24:09
阅读次数:
262