
强连通
文章平均质量分 76
拉风的啤酒肚
菜鸟一枚若发表的文章有所错误望各位大神提出意见
展开
-
POJ2186----Popular Cows(强连通+缩点)
刚看的白书上的强连通,有种似懂非懂的感觉,所以就拿题目来练练手。此题题意不说了。我们在求出强连通分量之后,答案就是唯一的那一个出度为0强连通分量之中的顶点个数。#include #include #include #include #include #include #include #define M 10005using namespace std;int dfn[原创 2014-01-22 14:22:57 · 820 阅读 · 0 评论 -
HDU3715(二分+2-SAT)
题意就是求满足题目中给出的递归代码的最大递归层数。由于x[i]只有0和1,所以我们就比较容易想到2-SAT,然后二分递归层数,求出满足要求的最大递归层数。建图的时候,不满足不等式的就是互相矛盾的,然后建边。#include #include #include #include #include #include #include #include #include #in原创 2014-05-02 09:53:12 · 1144 阅读 · 0 评论 -
HDU3622(二分+2-SAT)
题意不说了,直接讲思路。首先对半径进行二分,然后再判断炸弹之间的距离是否小于2*半径,如果是,那么就连接i->j^1和j->i^1,然后用强连通判断可行性。#include #include #include #include #include #include #include #include #include #include #include #define原创 2014-05-01 20:57:25 · 1450 阅读 · 0 评论 -
HDU1824
2-SAT入门题,将两个队员看成一个点即可,即用一条边将两个队员连起来,然后就是2-SAT裸题。#include #include #include #include #include #include #include #include #include #include #include #define M 3005#define LL long long#def原创 2014-05-01 19:39:33 · 1030 阅读 · 0 评论 -
HDU3342--Legal or Not(强连通)
我们可以先求出强连通分量,然后用num数组记录每个强连通分量里面的顶点数,若有强连通分量里的顶点数超过1,就输出NO,否则就输出YES。#include #include #include #include #include #include #include #include #include #define INF 999999999#define M 105#def原创 2014-01-25 18:48:24 · 956 阅读 · 0 评论 -
ZOJ3232--It's not Floyd Algorithm(强连通+缩点+建图+floyd)
题目是给你一个矩阵,1表示u可以到达v,0代表不可到达,问你至少需要多少条边组成的传递闭包符合这个矩阵。我们可以求出强连通分量,然后在对每个强连通分量进行缩点,每个强连通分量的最少边的数量就是该强连通分量的结点数,再建立新图。对新图中的点用floyd算法,若图中用floyd算法能达到的,且在新图中为1的点,我们将它变为0,则答案就是每个强连通分量内的边数加上新图中为0的点的个数。#incl原创 2014-01-24 18:53:51 · 1361 阅读 · 0 评论 -
HDU3639--Hawk-and-Chicken(强连通+缩点+反向图)
这题WA了好几遍。原因是num数组没有初始化。。果然细节很重要啊。。题目意思是求传递数最大的有多少孩子,并输出他们的序号。我们先在原图上用Tarjan算法求出强连通分量,然后建立反向图,并求出反向图中各个点的入度,传递数的最大值肯定是在这些入度为0的点中。#include #include #include #include #include #include #include原创 2014-01-23 15:20:43 · 1320 阅读 · 0 评论 -
POJ1236--Network of Schools(强连通+缩点)
第一问:至少需要多少份软件,才能使得所有学校都能拥有软件;第二问:如果只用一份软件,那么需要添加多少条变,使得所有学校都能拥有软件。第一问中,如果一个学校有用一份软件,那么它的强连通分量中的其他学校,肯定也能够拥有软件,所以只要求出出度为0的强连通分量的个数即可。第二问中,就是求需要添加多少条变,使得整个图都成为一个强连通,即任意两个学校都可到达,所以我们只要求出出度为0的个数a,和入度为原创 2014-01-22 15:04:47 · 849 阅读 · 0 评论 -
HDU3836--Equivalent Sets(强连通+缩点)
题目就是告诉你有m条边是从u通向v的,问你至少添加多少条边之后,能形成一个强连通。模版题。#include #include #include #include #include #include #include #define LL long long#define M 20005using namespace std;vector G[M];int dfn[M],原创 2014-01-23 09:01:05 · 858 阅读 · 0 评论 -
HDU3861(强连通+最小覆盖路径)
题意:国王要给n个城市进行规划,分成若干个州。如果:1、有边u到v以及有边v到u,则u,v必须划分到同一个州内。2、一个州内的两点至少要有一方能到达另一方。3、一个点只能划分到一个州内。思路:先把能相互两两到达的点用强连通归为一个州,然后再进行缩点,建立新图,然后用匈牙利算法求出最大匹配,答案=强连通求出的联通块-最大匹配(最小路径覆盖=结点数-最大匹配)。#include #inclu原创 2014-04-19 10:11:40 · 1563 阅读 · 0 评论