▼图论,搜索
文章平均质量分 81
Kuro同学
这个作者很懒,什么都没留下…
展开
-
poj2031 Building a Space Station 三维空间的最小生成树
题目链接:2031http://write.blog.csdn.net/postedit?ref=toolbar题意:在三维空间中有N个球形空间站,给出每个空间站的三维坐标x,y,z 和半径.其中空间站之间可能存在相交,包含,相离等情况。如果非相离则两空间站的距离为0。求连同所有空间站的最小生成树。题解:三维构图两空间站的原创 2015-01-23 15:48:10 · 1509 阅读 · 0 评论 -
POJ2337 Catenyms 欧拉路径的输出
题目链接:poj2337题意:给出一些字符串,问能否将这些字符串 按照 词语接龙,首尾相接 的规则 使得每个字符串出现一次如果可以 按字典序输出这个字符串序列解题思路:1.将每个字符串的首尾单词理解为图中的点,将字符串理解为边构图2根据入度出度判断是否能构成欧拉路径3并查集判断连通性4将所有字符串按字典序排原创 2015-05-19 14:31:30 · 1590 阅读 · 0 评论 -
POJ 1523 SPF 割点与桥的判断算法-Tarjan
题目链接:POJ1523题意:问一个连通的网络中有多少个关节点,这些关节点分别能把网络分成几部分题解:Tarjan 算法模板题顺序遍历整个图,可以得到一棵生成树:树边:可理解为在DFS过程中访问未访问节点时所经过的边,也称为父子边回边:可理解为在DFS过程中遇到已访问节点时所经过的边,也原创 2015-06-30 10:15:44 · 2425 阅读 · 0 评论 -
ZOJ 2588 Burning Bridges 割边的求解
题目链接:ZOJ2588题意:给出一个无向的连通图,问去掉图中的哪些边,都会使图将不连通题解思路:割边的求解:1、需要用到Tarjan算法的框架,首先求出dfn low 两个数组 当递归返回时 判断dfn[u]和low[v]的关系 只有当dfn[u] < low[v] 的情况下u-v是一条割边(u是关原创 2015-07-02 08:39:47 · 883 阅读 · 0 评论 -
点双连通分量的求解 Tarjan算法的拓展
问题描述:给出一张连通的无向图 输出图中的所有连通分量代码:#include#include#include#define maxn 1050using namespace std;struct node{ int from,to,next,vis; int equall(node b) { if((from原创 2015-07-01 11:38:00 · 931 阅读 · 0 评论 -
POJ1236 Network of Schools 强连通+缩点
题目链接:poj1236题意:给出一幅有向图,给出图中所有的边。问:1.要遍历完图的所有顶点,需要遍历多少次(可以从不同起点)2.要想只遍历一次,经过图中所有顶点(强连通)最少 需要增加多少条边题解思路:首先就是缩点重新建图对于问题1:要遍历整个图,只需要从图的所有起点开始遍历这里图中的起点就是入度为0的点,起点个原创 2015-07-09 17:49:51 · 870 阅读 · 0 评论 -
POJ2762 Going from u to v or from v to u? 强连通+缩点
题目链接:poj2762题意:给出一幅单向图,问这张图是否满足 任意两点ab 都能 从a到达b 或 从b到达a题解思路:判断一幅图是否满足弱连通 首先想到的是将图中的 强连通分量(能互相到达的顶点集) 进行缩点然后再根据原有边 重新建图如果缩点后的图是一条单链(回路,通路都可以) 则一定原创 2015-07-09 11:54:40 · 1007 阅读 · 0 评论 -
POJ3592 Instantaneous Transference 强连通+最长路
题目链接:poj3592题意:给出一幅n X m的二维地图,每个格子可能是矿区,障碍,或者传送点 用不同的字符表示;有一辆矿车从地图的左上角(0,0)出发,只能往右走或往下走,或者通过传送点 选择是否 传送到特定地点采过的矿的格子 矿会消失;问这辆矿车最多能采多少矿解题思路:首先重新建图,将图中二维的顶点压缩成一维的顶点原创 2015-07-10 17:40:52 · 932 阅读 · 0 评论 -
hiho1122 二分匹配
题目链接:hihocoder1122代码:#include#include#include#include#include#define maxn 1550using namespace std;vectorto[maxn];int vis[maxn]; int link[maxn];int vis2[max原创 2015-06-13 11:00:34 · 937 阅读 · 0 评论 -
POJ 3177 Redundant Paths 边双连通分量+缩点
题目链接:poj3177题意:给出一张连通图,为了让任意两点都有两条通路(不能重边,可以重点),至少需要加多少条边题解思路:分析:在同一个边双连通分量中,任意两点都有至少两条独立路可达,所以同一个边双连通分量里的所有点可以看做同一个点。缩点后,新图是一棵树,树的边就是原无向图桥。现在问题转化为:在树中至少添加多少条边能原创 2015-07-03 18:21:29 · 880 阅读 · 0 评论 -
csu1651 Weirdo 最均匀路径
题目链接:csu1651题解思路 :用到kruskal算法的思想:枚举这条路径最小的边作为kruskal算法的起始边当某条边加入一个 边集 后满足起点和终点在一个集合,即可得到一个答案这些答案的最小值即为answer中间会用到几个剪枝代码:#include#include#include#define MAXN 1原创 2015-06-04 10:45:07 · 796 阅读 · 0 评论 -
poj1780 code 欧拉回路
题目链接:poj1780题意:KEY 公司开发出一种新的保险箱。要打开保险箱,不需要钥匙,但需要输入一个正确的、由n 位数字组成的编码。这种保险箱有几种类型,从给小孩子玩的玩具(2 位数字编码)到军用型的保险箱(6 位数字编码)。当正确地输入最后一位编码后,保险箱就立刻打开了。保险箱上没有“确定”键。当你输入超过n 位数字,则只有最后n 位数字有效。例如,对一种原创 2015-06-23 18:11:11 · 1259 阅读 · 0 评论 -
poj1392 Ouroboros Snake 欧拉回路
题目链接:poj1392题意:咬尾蛇是古埃及神话中一种虚构的蛇。它经常把尾巴放在自己的嘴巴里,不停地吞噬自己。环数类似于咬尾蛇,它是2n 位的二进制数,具有如下性质:它能“生成”0~2n-1 之间的所有数。生成方法是:给定一个环数,将它的2n 位数卷成一个圆圈,这样,就可以从中取出2n 组n 位二进制数,以每个数的起始位置的下一个位置,作为下一个数的起始原创 2015-06-23 21:25:04 · 1287 阅读 · 0 评论 -
POJ 1679 The Unique MST 判断最小生成树是否唯一/次小生成树
题目链接:1679题意:给出 M个点N条边 求它的的最小生成树 不唯一则输出:Not Unique!题解:prim:判断“最小生成树是否唯一”可以理解为“最小生成树和次小生成树是否相等”求次小生成树的步骤如下1)先求出最小生成树T,在prim的同时,用一个矩阵maxx[u][v]记录在树中连接u-v的路径中权值最大的边.原创 2015-01-26 11:07:53 · 1058 阅读 · 0 评论 -
POJ 1861 Network Kruskal优化模板
题意:又M个点 N条边 求构成最小生成树的最大边 和所有边的两个端点裸最小生成树 加上了两个优化1.路径压缩:查找x元素的根节点d时,将x的所有父亲节点全部直接变成根节点的子节点以减少下次查找的查找时间2.在并查集 并 的过程中 考虑两个节点谁的子节点多,少的作为子节点原创 2015-01-23 11:24:01 · 1068 阅读 · 0 评论 -
POJ 3026 Brog Maze BFS+最小生成树
链接:3026题意:一个M X N 的迷宫里有1个起点和X个目标点,求起点到所有目标点的总步数;搜索迷宫的代价被定义成参与搜索的所有子群体走过的步数总和。例如,如果原群体走了5 步,然后分裂成2 个子群体,每个子群体又分别走了3 步,则总步数为:11=5+3+3。题解:通过BFS 起点和目标点 建边,再用prim算法即可答案原创 2015-01-25 17:18:12 · 810 阅读 · 0 评论 -
POJ2349 Arctic Network 最小生成树
链接:2349题意:一个平面网络中 有M个卫星N个站点,每两个站点之间可以用通讯器联系或用卫星联系,用通讯器联系的花销和距离有关,用卫星联系则不需要花销。给出每个站点的坐标(x,y),求这个网络最小生成树的最大边。题解:M个卫星一共可以减去M-1条边,通过prim算法求出生成树中的所有(n-1)条边,通过排序,再减去(m-1)原创 2015-01-24 11:30:36 · 933 阅读 · 0 评论 -
POJ1300 Door Man 欧拉回路的判断
题目链接:1300题意:一个房子中有(编号0~N-1)N个房间和X个连通两个房间的门,每次经过一扇门时这扇门会被关闭。问:一个人从M号房间出发能否成功到达0号房间并关闭所有门。题解:此题是欧拉回路的入门题,首先学习无向图欧拉回路的判断定理:无向图G 存在欧拉通路的充要条件是:G 为连通图,并且G 仅有两个奇度结点(度数为奇数的原创 2015-02-15 01:24:04 · 1278 阅读 · 0 评论 -
ZOJ 2027 Traveling fee dp+floyed
题目链接:2027题意:暑假快到了,Samball 想取旅行,现在可以制定一个计划了。选定旅行目的地后,接下来就是选择旅行路线了。由于他并没有多少钱,所以他想找一条最省钱的路线。Samball 得知旅游公司在暑假会推出一个折扣方案:选定一条线路后,在这条线路上连接两个城市间机票费用最贵的费用将被免去,这可是个好消息。给定出发地和目的地,以及所有机票的费用,请计算最小的费原创 2015-03-10 20:30:19 · 913 阅读 · 0 评论 -
PAT 关键活动 拓扑排序-关键路径
链接:关键活动思路:1、首先通过队列加邻接表完成拓扑排序:所有入度为0的节点a入队在邻接表中找到a的所有后继节点后继节点入度-1如果后继节点入度为0则后继节点入队2、当图中出现环时则任务调度不可行:只要判断是否入队n次即可3、在拓扑排序的过程中用path数组保存所有(关键活动)的前驱节点最后通过队列和path数组原创 2015-04-27 13:35:57 · 2038 阅读 · 0 评论 -
POj 1386 Play on words 欧拉回路/通路,图的连通性判断
题目链接:#include#include#include#define M 28using namespace std;int fa[M];int Find(int x){ return x==fa[x]?x:fa[x]=Find(fa[x]);}int main(){ int T,n; char str[1005]; int in_degre原创 2015-05-13 11:38:45 · 1086 阅读 · 0 评论 -
POJ 2513 Colored Sticks 欧拉路的判断+字典树
题目链接:poj2513题意:给定一捆木棍。每根木棍的每个端点涂有某种颜色。问:是否能将这些棍子首尾相连,排成一条直线,且相邻两根棍子的连接处端点的颜色一样。输入描述:输入文件中包含若干行,每行为两个单词,用空格隔开,表示一根棍子两个端点的颜色。表示颜色的单词由小写字母组成,长度不超过10 个字符。木棍的数目不超过250000。输出描述:如果木棍原创 2015-05-13 17:18:45 · 963 阅读 · 0 评论 -
POJ3694 Network 割边+LCA
题目链接:Poj3694题意:给出一个N(1 ≤ N ≤ 100,000)个点 和 M(N - 1 ≤ M ≤ 200,000)的连通图.有Q ( 1 ≤ Q ≤ 1,000)个询问 每次询问增加一条边(累加下去)输出每增加一条边后剩下的桥的数量题解:10W点加1000次询问 每次询问都用Tarjin算法求一次肯定会超时的原创 2015-07-06 19:46:23 · 784 阅读 · 0 评论 -
POJ2391 Ombrophobic Bovines 网络流拆点+二分+floyed
题目链接:poj2391题意:有n块草地,每块草地上有一定数量的奶牛和一个雨棚,并给出了每个雨棚的容(牛)量.有m条路径连接这些草地 ,这些路径是双向的,而且很宽敞,可以容下无限条牛并排走, 给出经过每条路径所需要消耗的时间问:所有牛都到达雨棚下的最小时间解题思路:类似 牛与挤奶器的问题http://blog.原创 2015-07-27 17:38:32 · 936 阅读 · 0 评论 -
poj2112 Optimal Milking dinic/isap+floyed+二分
题解思路:1.floyed算法求出每头奶牛到每个挤奶器的最短距离3.网络流判断 是否可以完成所有奶牛原创 2015-05-22 20:17:23 · 883 阅读 · 0 评论 -
POJ1043 What's In a Name 逆图+完美匹配
题意:一个犯罪团伙有N个人,他们分别有自己的名字和网上的代号现已知他们会先后进出一个房间发送电报警方可以知道所有时间下进出的人的真实名字同时通过截获电报,获得网名原创 2015-08-16 16:05:40 · 1264 阅读 · 0 评论 -
有上下界的最大流解法
问题模型:给定一个加权的有向图,满足:(1)容量限制条件: (2)流量平衡条件: (2)中的即除了源汇外,所有点都满足流量平衡条件,则称G为有源汇网络;否则,即不存在源汇,所有点都满足流量平衡条件,则称G为无源汇网络。将这类问题由易到难一一解决:问题[1] 求无源汇的网络有上下界的可行流由于下界是一条弧上原创 2015-08-04 20:59:00 · 5911 阅读 · 1 评论 -
zoj2587 Unique Attack 判断最小割是否唯一
题目链接:zoj2587题意:给出一张无向网络图,并给出起点和终点,破坏图的每一条边需要一定的费用,问破坏起点和终点的连通性的费用是否唯一.解题思路:破坏两点的连通性的最小费用,很容易联想到 网络流中的最小割,建立源点 汇点 同时 因为图是无向图,我们需要将每条边建两次(正反向).然后就是判断这个最小割是否唯一了:原创 2015-08-03 21:05:47 · 1336 阅读 · 0 评论 -
Hdu 2236 无题II 最大匹配+二分
题目链接:Hdu 2236解题思路:将行和列理解为二分图两边的端点,给出的矩阵即为二分图中的所有边,如果二分图能完全匹配,则说明 不同行 不同列的n个元素 区间为(min_edge,max_edge),这些edge是指构成完全匹配的那些边题目需要求解最小区间长度我们 可以 二分区间长度(0~100),每次枚举区间的下界最后得到的maxl 即为原创 2015-07-25 09:41:30 · 1094 阅读 · 0 评论 -
zoj1994 / poj2396 Budget 有上下界可行流求解
题目链接:zoj1994题目描述:现在要针对多赛区竞赛制定一个预算,该预算是一个行代表不同种类支出、列代表不同赛区支出的矩阵。组委会曾经开会讨论过各类支出的总和,以及各赛区所需支出的总和。另外,组委会还讨论了一些特殊的约束条件:例如,有人提出计算机中心至少需要1000K 里亚尔(伊朗货币),用于购买食物;也有人提出Sharif 赛区用于购买体恤衫的费用不原创 2015-08-05 15:31:07 · 1244 阅读 · 0 评论 -
CSU1506 Double Shortest Paths 最小费用最大流入门题
题目链接:csu1506解题思路:按照最小费用最大流的思想: 每条边的容量表示可以经过的次数 ,每条边的费用表示经过这条边所需的费用那么题目中的每条已给出的边 可以拆成两条容量为1的边:费用分别为di di+ai将源点与1连接 n与汇点连接 容量都为2 费用为0这样跑出来的最小费用 就是答案所求原理其实就是通过最大流中原创 2015-08-06 20:39:06 · 953 阅读 · 0 评论 -
POj3422 Kaka's Matrix Travels 最小费用最大流 拆点
题目链接:poj3422题意:有一个N X N的矩阵, 矩阵的每一小格都有且仅有一个数字v,kaka每经过一个数字就会把它捡起来并将那个数字加到sum上去.现在kaka能通过向下或向右走的方式从 (1,1)到(n,n) K次,问kaka能取到的最大的sum是多少.解题思路:题目问题可以抽象为 求多次可走重复路的最长路的最大和问题原创 2015-08-07 11:20:36 · 904 阅读 · 0 评论 -
POJ2942 Knights of the Round Table 点双连通分量,逆图,奇圈
题目链接:poj2942题意:有n个人,可以开多场圆桌会议这n个人中,有m对人有仇视的关系,相互仇视的两人坐在相邻的位置且每场圆桌会议的人数只能为奇书问有多少人不能参加解题思路:首先构图,将所有的仇视关系视为一条边,最后再取已经得到的图的逆图,这样图上连接的边就代表可以相邻而坐的关系然后就是找奇圈了,首先就是要原创 2015-08-19 16:04:44 · 1174 阅读 · 0 评论 -
hiho1087 Hamiltonian Cycle 位运算+记忆化搜索 求哈密顿回路数量
题目链接:hiho1087题目详解:题目详解代码:#include#include#include#define maxn 20using namespace std;int next_all[maxn]={0};int pos[1<<maxn];int dp[maxn][1<<maxn];int原创 2015-09-19 21:13:08 · 1026 阅读 · 0 评论 -
POJ2125 Destroying The Graph 最小点权覆盖
题目链接:poj2125题意:给出一张N个顶点M条边的有向图。对于每个顶点x,有两种操作:1,删除所有进入x的边,花费为a;2.删除所有从x出去的边,花费为b.问把图中所有边删除所需要的最小花费.并输出对应的操作。解题思路:由题目条件(删除入边,删除出边)首先想到应该是拆点. 这样题目的问题转化为最小点权覆盖问题.原创 2015-08-14 17:07:08 · 1013 阅读 · 0 评论 -
POJ1149 PIGS 最大流-建模 附isap模板
题意:麦克是农场主有N个猪圈,每个猪圈都有一把锁但麦克没有钥匙。要买猪的顾客一个接一个来到养猪场,每个顾客有一些猪圈的钥匙,而且他们要买一定数量的猪。当每个顾客到来时,他将那些他拥有钥匙的猪圈全部打开;迈克从这些猪圈中挑出一些猪卖给他们;如果迈克愿意,迈克可以重新分配这些被打开的猪圈中的猪;当顾客离开时,猪圈再次被锁上。给出每个猪圈的初始原创 2015-05-22 11:07:06 · 820 阅读 · 0 评论 -
Hiho1186/ 第五十五周 连通性·四 点双连通分量
题意:给出一幅n个点m条边的连通图 求图中有几个点双连通分量并输出每条边所在点双连通分量中所有边的编号最小边的编号代码:#include#include#include#define maxn 20050#define maxm 200050using namespace std;struct node{ int id,t原创 2015-07-20 14:45:33 · 979 阅读 · 2 评论 -
poj1637 混合图欧拉回路的求解 网络流
题目链接:POJ1637题意:一幅图 ,给出有向边和无向边,问是否有经过所有边仅一次的欧拉回路解题思路:混合图欧拉回路的求解需要用到网络流,具体的建模方法如下:1、先给所有无向边定向,然后统计所有点的入度和出度,2、如果某点 入度-出度=奇数 那么一定不能构成欧拉回路 //入度+x 出度-x 度数差奇偶性不变3、如果原创 2015-07-28 16:47:29 · 1358 阅读 · 0 评论 -
POj2516 Minimum Cost 最小费用最大流
题目链接:poj2516题意:Dearboy 是一个优秀的食品供应商,他现在面临一个大问题,需要你的帮忙。在他的销售地区,有N 个店主(编号从1~N)帮他销售食品。Dearboy 有M 仓库(编号从1~M),每个仓库第6 章 网络流问题可以提供K 种不同的食品(编号从1~K)。一旦有店主向他订食品,Dearboy 应该安排哪个仓库、向该店主提供多少食品,原创 2015-08-07 20:30:16 · 966 阅读 · 0 评论 -
zoj1232 Adventure of Super Mario dp+floyed
题目链接:zoj1232题意:一幅无向图有n1个村庄(1~n1),n2个城堡(n1~n1+n2),它们之间有m条边,马里奥知道每条边的距离且他1s能走1单位距离马里奥要从1号村庄走到n1+n2号城堡,他有一双可以使用k次的跑鞋,每使用一次可以从一个地方迅速到达另一个地方,但中间不能经过城堡,且两个地方的距离不能超过L问,马里奥最少需要多少时间原创 2015-08-22 17:16:00 · 1023 阅读 · 0 评论