图论——连通图
文章平均质量分 82
HARD_UNDERSTAND
Just try
展开
-
Codeforces 659E 找环+(并查集/dfs)
题目: http://codeforces.com/problemset/problem/659/E 题意: 给你一个图,现在要你给这个图里面的边定方向,使得入度为0的点最少。 分析: 对于一个连通块而言,如果里面存在一个环,那么必然所有点的入度都可以大于等于1 否则的话,就存在一个点的入度为0。并查集:#include <bits/stdc++.h>using namespace s原创 2016-03-31 23:45:25 · 317 阅读 · 0 评论 -
poj 3207 Panda's Trick(2-sat,建图)
题目:http://poj.org/problem?id=3207 题意: 一个圆上顺时针放着n个点,现在要连m条边,每条边可以从圆的内部连也可以从圆的外部连。 保证每个点最多连1条边,问是否能使所有的边都不相交。分析: 典型的2-sat问题,主要考察建图。 建图:对于一条边i,在圆内记为i,在圆外记为i’。 设边i连接点A,B,边j连接点C,D。i与j在圆内是否相交就原创 2016-10-03 18:39:20 · 358 阅读 · 0 评论 -
Codeforce 723E - One-Way Reform(欧拉回路*,构造)
题目:http://codeforces.com/contest/723/problem/E 题意: n个点m条边的无向连通图 没有自环没有重边 我们要把所有点都定向 希望使得尽可能多的点拥有相同的入度与出度 让你输出满足这个条件的最大点数和每条边最后的定向 分析: 有个结论:只要是度为偶数的点,一定可以构造出入度等于出度。奇度点一定不可能。 如何确原创 2016-10-04 22:59:06 · 530 阅读 · 0 评论 -
Cddeforces 723F - st-Spanning Tree(构造,无权生成树)
题目:http://codeforces.com/contest/723/problem/F 题意: 给你一个联通无向图 让你构造一个无权生成树,使得—— S点的度数不超过SD T点的度数不超过TD 分析: 这题和上一题一样都是构造(灵机一动~~) 首先把不包含s和t的边先求一下连通块 处理完后还剩三种边 s-某个连通块 t-某个连通块原创 2016-10-04 23:27:12 · 492 阅读 · 0 评论 -
poj 2296 Map Labeler(2-SAT+二分,构图)
http://poj.org/problem?id=2296 题意: 给你n个点,要你在这n个点上放一个正方形,点 只能在正方形的上边或下边的中点上,所有正方形大小一样, 不能重叠,求最大的正方形。。。分析: 如果abs(s[i].x-s[j].x)>=r则可以随便放 如果 abs[s[i].x-s[j].y)< r; 如果abs(s[i].y-s[j].y原创 2016-10-08 18:22:04 · 370 阅读 · 0 评论 -
poj 2553 The Bottom of a Graph【强连通分量】
题目:http://poj.org/problem?id=2553题意:在n个点m条边的有向图里面,问有多少个点是汇点。分析:Tarjan,缩点,判断出度为0的强连通分量,将整个集合排序,输出即可。代码:#include<cstdio>#include<cstring>#include<vector>#include<stack>#include<algorithm>using names原创 2017-03-09 19:34:45 · 276 阅读 · 0 评论 -
51nod 1076 2条不相交的路径【边连通分量】
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1076题意:给出一个无向图G的顶点V和边E。进行Q次查询,查询从G的某个顶点V[s]到另一个顶点V[t],是否存在2条不相交的路径。(两条路径不经过相同的边) (注,无向图中不存在重边,也就是说确定起点和终点,他们之间最多只有1条路) Input第1行:2个数M N原创 2017-03-09 19:41:49 · 462 阅读 · 0 评论 -
hdu 3394 Railway【点双连通分量、桥、割点】
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3394题意:有一个公园有n个景点,公园的管理员准备修建m条道路,并且安排一些形成回路的参观路线。如果一条道路被多条道路公用,那么这条路是冲突的;如果一条道路没在任何一个回路内,那么这条路是不冲突的问分别有多少条有冲突的路和没有冲突的路分析: 1.“多余边”不在任何一个环中,那么多余边一定是桥,所以统计这个原创 2017-03-10 12:43:05 · 434 阅读 · 0 评论 -
poj 3177、3352 【有重边的边连通分量】
题目:http://poj.org/problem?id=3177题意: 为了保护放牧环境,避免牲畜过度啃咬同一个地方的草皮,牧场主决定利用不断迁移牲畜进行喂养的方法去保护牧草。然而牲畜在迁移过程中也会啃食路上的牧草,所以如果每次迁移都用同一条道路,那么该条道路同样会被啃咬过度而遭受破坏。 现在牧场主拥有F个农场,已知这些农场至少有一条路径连接起来(不一定是直接相连),但从某些农场去另外一些原创 2017-03-10 09:25:10 · 275 阅读 · 0 评论 -
hdu 5409 CRB and Graph 【边连通、缩点重构】
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5409题意:一个联通的无向图, 对于每一条边, 若删除该边后存在两点不可达,则输出这两个点, 如果存在多个则输出第一个点尽可能大,第二个点尽可能小的。 不存在输出0 0分析:删除边后不连通,显然是找桥。 对于每一条桥,删掉这条桥之后一定会形成两个连通分量。 可以求这两个连通分量的点的最大值max1和max原创 2017-03-11 21:14:26 · 253 阅读 · 0 评论 -
hdu 3622 Bomb Game(二分+2-sat)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3622 题意: 给n对炸弹可以放置的位置(每个位置为一个二维平面上的点),每次放置炸弹是时只能选择这一对中的其中一个点,每个炸弹爆炸的范围半径都一样,控制爆炸的半径使得所有的爆炸范围都不相交(可以相切),求解这个最大半径.分析: 二分最大半径值r,然后2-sat构图判断其可行性. 对于两原创 2016-10-03 18:26:46 · 258 阅读 · 0 评论 -
hdu 3018 欧拉路定理+并查集
题目:hdu 3018 题意: 有一些道路,每次只能走一遍,问最少几次走遍所有道路? 分析: 这题是经典问题:一笔画问题。解决这个问题,需要知道几个定理和定义: 1. 欧拉道路:能否从无向图中的一个节点出发走出一条道路,每条边恰好经过一次,这样的路线称为欧拉道路。 2. 如果一个图是联通的且最多只有两个奇度点,则一定存在欧拉道路。如果有两个奇度点,则必须从其中一个出发,回到另一个终止。如原创 2016-03-23 21:19:45 · 275 阅读 · 0 评论 -
UVa 10129 单词 (有向欧拉路+并查集)
题目: 输入n个单词,是否可以把这些单词排成一个序列,使得第一个字母和上一个单词的最后一个字母相同。仅包含小写字母例如(acm malform mouse)就可以。 分析: 这是一道判断欧拉路的题目,上篇对欧拉路写了点基本定义。对于这题,把首尾字母看做节点,单词看成是有向边,用并查集判断是否连通,然后再根据有向图的结论:最多只能有两个点的入读不等于出度,而且必须是其中一个点的出度比入度大一原创 2016-03-23 22:33:23 · 465 阅读 · 0 评论 -
hdu 5438 并查集
题目:hdu 5438 题意: 有一些池塘用管道连接着,但是主人没钱了,要清除一些与其他池塘相连数目少于2的池塘,包括一些独立的池塘。每个池塘都有一个价值,最后在删完一些池塘后求出有奇数个连通块的池塘的价值和。 分析: 记得是一道网络赛的题目。而且还记得我做的时候,用了deque,总是超时。又做了一下,好简单的题目。就是模拟一下删池塘的操作就好。先用并查集记录一下每个池塘所处的连通块,然后开原创 2016-03-23 23:41:39 · 271 阅读 · 0 评论 -
hdu 5652 并查集
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5652 题意: 给出一个n*m的图,1是山峰,0是平原,还有q个操作,可以把0变成1,问最少前几次操作可以使得图的上端和下端完全阻隔,就是被1隔开。 分析: 判断是否完全隔开,就是判断是否1可以从左到右全都连起来,那么可以增加两个点s和e,表示最左端个最右端,如果是1,那么将1的八方是1的点连接起来,原创 2016-03-28 15:24:34 · 326 阅读 · 0 评论 -
poj 2513 无向图欧拉路+Trie
题意:给出一些木棍,每个木棍两端有两种颜色,不同的木坤如果首尾颜色相同,那么就可以连接起来,问是否所有的木棍看可以连成一条线?分析:这题跟Uva10129单词那题几乎是一样的,只不过那题是有向图,因为单词的首尾是固定的嘛!而这题是无向图,无向图的话先判断一下是否是连通图,然后再判断一下每个点的度,如果没有奇度点或者奇度点只有两个那么是可以构成无向欧拉图的。把不同颜色当做不同的点,用Tr原创 2016-07-12 19:27:47 · 315 阅读 · 0 评论 -
UVa 10054 项链(欧拉回路)
题意: 给你n个珠子,一个珠子分为两半有两种颜色,用1到50来表示50种不同的颜色。把这些珠子串起来,两个紧挨着的珠子要满足一个条件就是接触的那部分颜色要相同 例如(1,2)(2,4),两个珠子的接触部分颜色相同都为2。当然,因为珠子最后是连成环的,第一个珠子和最后一个珠子也会接触,也要买满足这个条件 先输入T,有T组数据 输入n,有n个珠子 下面n行每行两个数字表示这个原创 2016-09-17 09:34:04 · 402 阅读 · 0 评论 -
hdu 5883 (欧拉路,青岛网络赛)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5883 题意: n个湖泊,m个河流连着,要从一个湖泊出发,经过所有河流,没经过一个湖泊就有异或上ai,问异或和最大是多少?如果不能走完所有河流,输出Impossible。分析: 显然是欧拉路问题,如果能完成,那么肯定是欧拉路,先判断连通。如果连通并且所有点的度都是偶数,那么就可以构成欧拉回路。如果原创 2016-09-21 20:57:01 · 390 阅读 · 0 评论 -
poj 2942-圆桌骑士(点双连通分量+二分图)
题目:http://poj.org/problem?id=2942 题意: 一群骑士,某些骑士之间互相憎恨,如果在一起容易发生争斗事件,因此他们只有满足一定条件才能参加圆桌会议:1.圆桌边上任意相邻的两个骑士不能互相憎恨;2。同一个圆桌边上的骑士数量必须是奇数;分析: 这题训练指南上有详解,分析是copy自JosiahChiu的,书上写的挺详细的。我主要是贴一下作为模板~~ 1 骑原创 2016-10-02 15:47:36 · 551 阅读 · 0 评论 -
poj 3177 poj 3352 (边双连通分量裸题+缩点)
题目:http://poj.org/problem?id=3177 题意: 这两题几乎一样,都是给一个连通图,问最少加几条边可以得到边双连通图。分析: 先求出边双连通分量(low[i]值相同的点属于同一个边双连通分量.),然后把边双连通分量缩点,得到一个无向连通图,那么这时最少加几条边才能构成边双连通图呢?有个结论:对于一棵无向树,我们要使得其变成边双连通图,需要添加的边数 == (树中原创 2016-10-02 19:12:00 · 641 阅读 · 0 评论 -
poj 1236 Network of Schools(强连通分量构造强连通图)
题目:http://poj.org/problem?id=1236 题意: N(2< N< 100)各学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输,问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件。2,至少需要添加几条传输线路(边),使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件。分析: 先找出原创 2016-10-02 21:02:53 · 302 阅读 · 0 评论 -
UVa 11324 最大团(强连通分量+dp最长路)
题意: 给一张有向图G,求一个结点数最大的结点集,使得该结点中任意两个结点 u 和 v满足:要么 u 可以到达 v, 要么 v 可以到达 u(u 和 v 相互可达也可以)。分析: 同一个强连通分量中的点要么都选,要么不选。把强连通分量收缩点后得到SCC图,让每个SCC结点的权等于它的结点数,则题目转化为求SCC图上权最大的路径。所以转化成了dp求DAG上的最长路。代码:using nam原创 2016-10-02 22:15:24 · 582 阅读 · 0 评论 -
Codefroces 791B【判断完全图,简单题】
题目:http://codeforces.com/contest/791/problem/B题意:给一个图,判断每个连通分量是不是完全图?分析:其实知道是求完全图就很好做了、判断每个连通分量的是否v*(v-1)==e即可,v是顶点数量,e是边的数量。代码:#include<bits/stdc++.h>using namespace std;bool vis[200005];vector<int原创 2017-03-24 11:08:21 · 995 阅读 · 0 评论