
ACM-图论
文章平均质量分 80
「已注销」
这个作者很懒,什么都没留下…
展开
-
hdu 2433 Travel 最短路+预处理
http://acm.hdu.edu.cn/showproblem.php?pid=2433题意:给定一个有N个顶点和M条边的无向图,图的每条边的权重都为1 ,分别求删除各条边的任意两个点之间的最短距离的和。 N思路:暴力的作法,分别枚举每条边,并删除,因为每条边的权重都为1 ,可以用一次bfs在O(M)的时候内求出单源最短路径,注意这里的图必须要用邻接矩阵存储,要不然时间复杂度会大于O(原创 2012-04-06 17:43:47 · 1660 阅读 · 1 评论 -
POJ_2749 Building roads 2-Sat
http://poj.org/problem?id=2749题意:有N个牛棚,2个中转站,每个牛棚只能选择一个中转站并连接到该中转站,求任意两个在同一个中转站中的牛棚之间的最大距离的最小值。 思路:"最大值最小化"的问题都可以用“二分法”,本题也不例外,其次就是建图用2-sat求解,建图的规则是:如果d1[i] + d1[j] > mid 则说明i号牛棚和j号牛棚不能同原创 2012-05-05 18:29:07 · 532 阅读 · 0 评论 -
POJ_2723 Get Luffy Out 2-Sat
http://poj.org/problem?id=2723题意:有2n把钥匙,分成2组,给你每组的钥匙信息,并且每组的钥匙只能用一个。有m个门,每个门有2个锁,只要打开一个锁这个门就开了。(顺序遇见m个门)问你最多能够打开多少个门。思路:因为门是按顺序打开的,所以用二分枚举能打开的门数,然后判断是否可行是比较好的选择。建图主要从下面考虑: 对于第i原创 2012-05-05 14:18:29 · 499 阅读 · 0 评论 -
POJ_3683 Priest John's Busiest Day 2-Sat
http://poj.org/problem?id=3683题意:有N场婚礼,每场婚礼有一个开始时间和结束时间,并且每场婚礼都会举行一个仪式,这个仪式需要有一个司仪,并且这个仪式要么就在婚礼的一开始就举行,要么就在婚礼快结束的时候举行。但是现在只有一个司仪,司仪不能在同一时间参加两个不同婚礼的仪式,问是否存在这样的安排,使得司仪参见这些仪式不冲突,若不存在则输出“NO” , 若存在,则输出一种原创 2012-05-05 10:05:20 · 580 阅读 · 0 评论 -
hdu 3592 World Exhibition 差分约束
http://acm.hdu.edu.cn/showproblem.php?pid=3592题意:有N个人按照1-N 的顺序排成一排,给你X个关于他们位置的关系,如:a, b ,c,则说明编号为a的人在标号为b 的人的前面,且两人最多相隔c距离,再给你Y给位置关系,给出的是a和b两个人至少相距c,问1号人和N号人最远相距多少。如果不存在这样的排序,则输出-1 ,如果1和N可以相距任意的距离,则原创 2012-04-21 17:28:25 · 669 阅读 · 0 评论 -
HDU_1824 Let's go home 2-Sat
http://acm.hdu.edu.cn/showproblem.php?pid=1824题意:acm集训队有N只队伍,每只队伍有3人,其中1人为队长,另外两人都队员,现在需要安排回家休息,每只队伍要么队长回家,要么两名队员同时回家休息。 给出M组队员的信息,每组为(a,b)表示的是队员a和队员b不能同时留下也不能同时回家,问是否存在可行的方案。思路:2-Sat问题,原创 2012-05-05 16:45:44 · 596 阅读 · 2 评论 -
hdu 1384 Intervals 差分约束
http://acm.hdu.edu.cn/showproblem.php?pid=1384题意:给定n个区间,每个区间给定一个常数ci,求一个具有最少元素的整数集,要求每个区间中都有至少ci个整数和集合中的元素相同。思路:经典的差分约束。我们用count[i]表示,从0到i的区间内共有多少个元素被选在集合内,则对于每个给出的区间条件:[ i, j ] ci有:count[j] - cou原创 2012-04-21 15:07:41 · 1366 阅读 · 0 评论 -
HDU_4115 Eliminate the Conflict 2-Sat
http://acm.hdu.edu.cn/showproblem.php?pid=4115去年成都现场赛的一道题,那时候还不知道什么叫2-Sat ,今天终于1Y。题意:有两个人玩一个石头剪刀布的游戏,两个人连续玩N轮,给出其中一个人的N轮出的情况和该人对另外一个人的一些限制条件,有两种限制:每种限制表示为:(a,b,c) ,如果c==0 则表示该人对另外一个人的限制为第a原创 2012-05-05 22:49:34 · 594 阅读 · 0 评论 -
hdu 3666 THE MATRIX PROBLEM 差分约束
http://acm.hdu.edu.cn/showproblem.php?pid=3666题意:给你一个N*M的矩阵,求两列数a1,a2,a3...an 和 b1,b2.....bm使得对矩阵中的每个数进行下面的操作之后的值在[L,U]之间,操作为:a[i] * m[i][j] / b[j]。 N,M思路:差分约束。由题意可知,对于矩阵中的每个元素要满足的条件是:L a[i] * m[原创 2012-04-21 14:04:58 · 1205 阅读 · 4 评论 -
HDU_1853 Cyclic Tour KM
http://acm.hdu.edu.cn/showproblem.php?pid=1853题意:有N个城镇和 M条边,每条边都有一个权值,要求用若干个环把所有的顶点覆盖,而且每个顶点要求只被一个环覆盖,求一种权值和最小的方案。思路:我们先分析每个环的情况,因为每个顶点只在一个环中,因此我们可以看出,对于每个环中的结点,入度和出度都为1,而且是每个点都必须要有一个入度和一个原创 2012-05-10 09:57:21 · 635 阅读 · 0 评论 -
POJ_3565 Ants KM匹配
http://poj.org/problem?id=3565题意:有N只ants和N棵tree,要求一种ants和tree的匹配方案,使得ant和tree之间的匹配线段互不相交。思路:KM求距离权值和最小的完备匹配,即我们可以证明距离权值和最小的完备匹配一定是不会出现两条线段相交的情况。下面给出一个证明:我们假设最小完备匹配中有两条线段AC和BD相交于点E,此时我们可以不连原创 2012-05-10 10:49:20 · 698 阅读 · 0 评论 -
POJ_3469 Dual Core CPU 最大流
http://poj.org/problem?id=3469题意:有N项工作需要用CPU执行完成,现在只有2个CPU,已知每个项任务在两个CPU上的执行时间,并且还给出了一些约束条件,每个约束条件是:(u , v , c)表示如果任务u和v不在同一个机器上执行的话,就需要付出额外的c的代价,求完全任务的最少花费是多少。思路:首先每项任务都需要完成,而且每项任务都只能在原创 2012-05-17 20:16:46 · 613 阅读 · 0 评论 -
HDU_1569 方格取数(2) 最小割
http://acm.hdu.edu.cn/showproblem.php?pid=1569题意:给定一个N*N的矩阵,矩阵的每个位置都存放着一个非负的数,现在要你从其中选出若干个数,并且所选的每两个数的不能有公共边,问最大的和是多少。 N,M思路:思路一:我们一开始想到的一种思路是dp,因为我们可以发现,每一行能不能选只取决于它的上一行状态,因此在确定第i行状态的时候,我原创 2012-05-18 10:36:45 · 884 阅读 · 0 评论 -
SGU_176 Flow construction 有上下界的网络流
http://acm.sgu.ru/problem.php?contest=0&problem=176题意:给你N个点和一些这些点之间的边,每条边都有一个流量上界和流量下界,求1号结点到N号结点的一个最小流,使得满足每条边的流量上下界的限制。思路:这是一道典型的有上下界的最小流的题目(求最大流是一样的算法),具体的方法介绍请看这篇论文:《一种简易的方法求解流量有上下界的网络原创 2012-05-18 17:34:42 · 774 阅读 · 0 评论 -
POJ_3648 Wedding 2-Sat
http://poj.org/problem?id=3648题意:有N-1对夫妻去参加0号夫妻的婚礼,0号新娘和0号新郎分做桌子的两边,现在已知同一对夫妻不能做在同 一边,而且给出M对“通奸”关系,要求这M对人不能有任意一对人同时做在新郎这一边,问是否有解, 有解则输出解。思路:2-Sat问题。建图的方法是:0号夫妻中,新郎必须在选,也就是说不能选新娘,我们就可以在新娘和新郎之间加一条边,原创 2012-05-05 13:15:13 · 496 阅读 · 0 评论 -
POJ_3678 Katu Puzzle 2-sat
http://poj.org/problem?id=3678题意:给你一个有N个点的图,和其中的某一些边,每条边都可以记为:(a,b,c,d),其中a,b代表的是边所依附的两个结点,d表示的是一种运算符,0: AND , 1 :OR , 2:XOR,c表示a,b顶点的值运用d运算符之后的结果应为c。需要给每个结点都赋一个值,使得满足所有的约束条件。思路:2-sat问题,首先我们可以看出,所原创 2012-05-04 15:09:15 · 569 阅读 · 0 评论 -
POJ 3522 Slim Span 并查集
http://poj.org/problem?id=3522题意:给定一个含有N个结点的图,求这样一种生成树,该生成树中的最大边和最小边的权值之差最小。N思路:由题意可知, 边的条数M的范围为:M代码:#include#include#includeusing namespace std;#define MIN(a,b) (a)>(b)?(b):(a)const int原创 2012-04-07 10:53:42 · 727 阅读 · 0 评论 -
hdu 2363 Cycling Dijkstra最短路
http://acm.hdu.edu.cn/showproblem.php?pid=2363思路:思路其实是和hdu1598类似,先对100个点进行排序,然后枚举最大高度最小高度, 时间复杂度为O(N^2),然后对于每个枚举的最高最低点,对100个点进行筛选,高度在这两者之间的点标记为合法点,然后就是对标记了的结点进行一个Dij, 复杂度为:O(N^2),可以用优先队列优化到O(N*logN)原创 2012-04-06 14:43:19 · 620 阅读 · 0 评论 -
hdu 3619 Heroes of Might and Magic 二维最短路
http://acm.hdu.edu.cn/showproblem.php?pid=3619题意:给一个N*M的迷宫,迷宫有一个起点和一个终点,分别用S和T表示。迷宫中还有"#":障碍物,不能走; "."可以走,而且不费代价; “i”,其中i是大于1,小于9的数字,可以走,但是要费一定的代代价,所花的代价就是数字i的值。;"A、B、C、D、E":其中的一种,表示该位置放置了一把锁,需要钥匙才能原创 2012-04-07 09:53:19 · 1045 阅读 · 0 评论 -
POJ 1679 The Unique MST 次小生成树Prim
http://poj.org/problem?id=1679题意:给定一个图, 求最小生成树,若最小生成树唯一则输出最小生成树的代价,否则输出“Not Unique!” 。思路:先求出最小生成树,然后求次小生成树,判断次小生成树和最小生成树的代价是否相等。以下说下用Prim求次小生成树的想法:算法1、step 1. 先用prim求出最小生成树T.原创 2012-04-07 19:49:06 · 697 阅读 · 0 评论 -
ZOJ 1576 Marriage is Stable 稳定婚姻问题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1576稳定婚姻是组合数学里面的一个问题。 问题大概是这样:有一个社团里有n个女生和n个男生,每位女生按照她的偏爱程度将男生排序,同时每位男生也按照自己的偏爱程度将女生排序。然后将这n个女生和n个男生配成完备婚姻。如果存在两位女生A和B,两位男原创 2012-04-07 22:05:12 · 1706 阅读 · 0 评论 -
POJ 2449 Remmarguts' Date Dij +A*
http://poj.org/problem?id=2449题意:求有N个点,M条边的第K短路。 N100000 , K思路:第K短路。裸的第K短路题。先说第一种思路:Dijkstra变形,将原来是一维的Dijkstra中的dis[ ]数组变成二维的dis[ i ][ j ],表示结点i 的第j短路。这样就可以由Dij的过程求出最终节点的K短路了。但是时间复杂度确不尽如人意,时间复杂度原创 2012-04-07 17:36:24 · 462 阅读 · 0 评论 -
POJ 1734 Sightseeing trip Floyd求最小环
http://poj.org/problem?id=1734题意:给定一个N个点的无向图,求其中的最小的环。思路:朴素的求法是:一次枚举每一条边(假设为e(i,j)),删除它,并求利用剩下结点(i,j)之间的最短路,该环就是dis(i,j) + e(i,j)。这样就需要依次枚举每条边,然后求一次最短路,时间复杂度为:O(N*N*M), 在N和M的数据规模较大时就会超时。 有原创 2012-04-08 09:42:35 · 1293 阅读 · 0 评论 -
POJ 3207 Ikki's Story IV - Panda's Trick 2-sat
http://poj.org/problem?id=3207题意:平面上,一个圆,圆的边上按顺时针放着n个点。现在要连m条边,比如a,b,那么a到b可以从圆的内部连接,也可以从圆的外部连接。给你的信息中,每个点最多只会连接的一条边。问能不能连接这m条边,使这些边都不相交。思路:对于每条Link,要么在圆外,要么在圆内,且不可同时满足,只能两者取一,判断这M条Link是否合法,也就是M条Li原创 2012-04-08 13:20:20 · 418 阅读 · 0 评论 -
USACO 4.1 Fence Loops 最小环
http://ace.delos.com/usacoprob2?a=b8o6p9MDlbr&S=fence6题意:给你一个有N个点的图,求图中的最小环。N思路:算法很简单,就是一个O(N^3)的Floyd最小环。这道题目恶心的地方是给你的图的信息是图中一些边与边之间依附的信息,这样就给建图带来了麻烦。没有想到好的方法,用了一种比较笨的方法,先将每条线段看做一条独立的边(有两个独立的顶点),原创 2012-04-26 23:19:43 · 720 阅读 · 0 评论 -
连通图的割点、割边(桥)、块、缩点,有向图的强连通分量
转载自:http://hi.baidu.com/scameeling/blog/item/60f25a8dc50347e3f01f36f0.html一、基本概念无向图割点:删掉它之后(删掉所有跟它相连的边),图必然会分裂成两个或两个以上的子图。块:没有割点的连通子图割边:删掉一条边后,图必然会分裂成两个或两个以上的子图,又称桥。缩点:把没有割边的连通子图缩为一个点,此时满足转载 2012-05-03 13:21:21 · 3166 阅读 · 0 评论 -
HDU_2242 考研路茫茫——空调教室 tarjin+树形dp
http://acm.hdu.edu.cn/showproblem.php?pid=2242题意:给你一个有N个点,M条边的无向图,并给没个结点一个权值,要求去掉所有边中的一条,将图分成两部分,求此时的两个图的权值差的最小值。思路:先对原图进行缩点,就可以得到一棵树,再用一个树形dp求出最小的权值差。注意重边的处理。代码:#include#include#include#in原创 2012-05-03 19:38:35 · 4485 阅读 · 0 评论 -
POJ_3694 Network Tarjin + LCA + 并查集
http://poj.org/problem?id=3694题意:给定一个有N个点,M条边的无向图(图原本连通),N思路:先对原无向图缩点,初始时候,桥的条数为:cnt -1 , 其中cnt为图中连通分量的个数,每次增加一条边的时候,我们可以先找出两个顶点的LCA,然后沿着树边往根移动,将这个圈又进行缩点,此时就可以在O(N)的时候内求出此时的桥。因为只需要求两个点之间的LCA,所有可以直原创 2012-05-03 22:39:13 · 578 阅读 · 0 评论 -
POJ 1523 SPF 无向图求割点
http://poj.org/problem?id=1523题意:给你一个有N个点的network,要你求图中的割点,对应每个割点给出删除该割点之后,图会变成几个不连通的子图。思路:双连通求割点,对于第二问,其实只需要求出割点在哪几个双连通子图中出现过即可。代码:#include#includeconst int MAXN = 1010 ;int g[MAXN][MAXN],原创 2012-05-03 13:25:41 · 858 阅读 · 0 评论 -
HDU_3394 Railway 无向图求块
http://acm.hdu.edu.cn/showproblem.php?pid=3394题意:给定一个有N个点,M条边的无向图,求有多少条边没有在环内,有多少条边在至少2个环内。思路:双连通求块,对于每个块,分别求出顶点数,记为a , 和边数,记为b,当a b的时候,这时候连通分量是一棵树,(其实只有两个顶点的时候才可能出现这种情况),此时的边都是没有构成环的边。反思:一开始错误原创 2012-05-03 17:09:51 · 997 阅读 · 0 评论 -
Picnic Planning 最小度限制生成树
http://poj.org/problem?id=1639题意:给你一个N个点的图,限制其中一个点的度数必须要小于等于K,求满足条件的最小生成树。思路:对于那个限制点因为比较特殊,我们可以先求出不包括限制点的最小生成森林,这样除了限制点之外,整个图就会形成一个生成森林,假设森林的个数是v0个,那么由生成树的性质可以得出,限制点的度数应该至少为v0,接下去每次添加一条边(增加限制点原创 2012-09-28 13:46:55 · 765 阅读 · 0 评论