随笔分类 -  图论

1
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1083 题解: 在bzoj里能遇到如此如此水的题真是不容易…… 乍一看好像有点吓人,其实是一道Kruskal模板题…… 阅读全文
posted @ 2016-10-28 00:51 xqmmcqs 阅读(171) 评论(0) 推荐(0)
摘要:题目链接:http://codevs.cn/problem/3287/ 题解: 和bzoj3732一毛一样,只不过是找最大生成树和最小值罢了,具体参见我的bzoj3732的博客 阅读全文
posted @ 2016-10-17 17:35 xqmmcqs 阅读(170) 评论(0) 推荐(0)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3732 题解: 一道比较综合的图论题,仍然需要重新构图 题目要求“最长边的最小值”,可以让所有路径尽可能短,然后求出路径上最大边即可 先求最小生成树,重新构图,再通过求LCA求得路径即可 阅读全文
posted @ 2016-10-17 17:31 xqmmcqs 阅读(155) 评论(0) 推荐(0)
摘要:题目链接:http://codevs.cn/problem/2370/ 题解: 裸LCA,注意结点是从0开始编号 Tarjan 树上倍增 阅读全文
posted @ 2016-10-17 17:28 xqmmcqs 阅读(176) 评论(0) 推荐(0)
摘要:有关概念: 最近公共祖先(LCA,Lowest Common Ancestors):对于有根树T的两个结点u、v,最近公共祖先表示u和v的深度最大的共同祖先。 树上倍增是求LCA的在线算法(对于每一个询问输入后即计算) 思路: fa[i][j]表示编号为j的结点从下往上的第2i个祖先 即fa[0][ 阅读全文
posted @ 2016-10-16 23:30 xqmmcqs 阅读(1039) 评论(0) 推荐(1)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1015 题解: 如果按照题目的意思,每次删点、删边太困难了……于是采用逆向思维,构造出最后的情况,往上加点、加边,用并查集判断连通块即可 [ATTENTION]易犯错误:逆向的最开始连通块个数 阅读全文
posted @ 2016-10-16 19:56 xqmmcqs 阅读(164) 评论(0) 推荐(0)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 题解: 其实刚布置这道题的时候,我是拒绝的,后来听大犇们的的话,潜下心来学了一点(又经过数小时的调试之后)才写出了正解 正解的概念表达是:利用平面图的性质,把最大流问题转化成最小割问题 阅读全文
posted @ 2016-10-16 16:55 xqmmcqs 阅读(194) 评论(0) 推荐(0)
摘要:题目链接:http://codevs.cn/problem/1332/ 题解: 裸Tarjan,每次出栈操作时,记录当前强连通分量中的结点数,与ans1比较,并用ans2记录当前最大强连通分量的序号 阅读全文
posted @ 2016-10-16 00:39 xqmmcqs 阅读(175) 评论(0) 推荐(0)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1179 题解: 一道比较综合的图论题 直接讲正解: 如果这个图G中存在某个强连通分量,那么这个强连通分量中的所有ATM即可视为都被抢到,所有的酒吧都可视为重点,并且也可以从这个强连通分量的任何 阅读全文
posted @ 2016-10-16 00:36 xqmmcqs 阅读(220) 评论(0) 推荐(0)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2654 题解: 若给每条白边加一个权值x,会使得选择白边的数量变少,即选择白边的数量f(x)单调递减,如此,二分x,使f(x)==need即可 阅读全文
posted @ 2016-10-16 00:33 xqmmcqs 阅读(176) 评论(0) 推荐(0)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1059 题解: 很玄学的问题…… 因为不同行或者不同列的格子,交换仍然不同行或者不同列 所以把问题转化为从黑格子里选n个,它们的横纵坐标都不相同 然后二分图匹配……两个子集分别是横坐标和纵坐标 阅读全文
posted @ 2016-10-16 00:20 xqmmcqs 阅读(146) 评论(0) 推荐(0)
摘要:题目链接:http://codevs.cn/problem/1022/ 题解: 匈牙利稍作改动,用邻接矩阵存储,以{横坐标和纵坐标都为奇数或横坐标和纵坐标都为偶数的点}为一个子集,其余的点为另一个子集,每次枚举4个方向进行深搜 阅读全文
posted @ 2016-10-16 00:14 xqmmcqs 阅读(198) 评论(0) 推荐(0)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1191 题解: 裸匈牙利,注意如果出现找不到增广路的情况就直接break 阅读全文
posted @ 2016-10-16 00:11 xqmmcqs 阅读(160) 评论(0) 推荐(0)
摘要:有关概念: 二分图:图G中的点集可以分为两个互不相交的子集,且G中的每条边连接的两个点分别属于这两个子集 二分图匹配:二分图G的子图M中每个结点上只连一条边,则称M为一个匹配 极大匹配:无法再向二分图中加边且满足匹配条件的匹配 最大匹配:所有极大匹配中边数最多的一个 增广路:若P为图G上连接两个未匹 阅读全文
posted @ 2016-10-16 00:02 xqmmcqs 阅读(440) 评论(0) 推荐(0)
摘要:差分约束系统: 给出有n个变量和m个约束条件(形如ai-aj<=k的不等式)的系统,求出满足这些约束条件的一组变量 那么……思路是把数的模型转换成图的模型,求解一个单源最短路径问题: 当有ai-aj<=k这个条件时,即在图中创建一条从aj指向ai的有向边,设置边权为k 然而还要创建一个起点,可以把它 阅读全文
posted @ 2016-10-15 23:02 xqmmcqs 阅读(154) 评论(0) 推荐(0)
摘要:题目链接:http://codevs.cn/problem/1021/ 题解: 哦!最小值的最大值!!二分!!!……咳咳…… SPFA算法,邻接表(邻接矩阵应该不会炸,懒得试了……) 先进行一遍SPFA,用pre数组记录1到n的最短路径,之后枚举这条路径上的每一条边为“堵车”的路,删除该边并进行SP 阅读全文
posted @ 2016-10-15 22:53 xqmmcqs 阅读(203) 评论(0) 推荐(0)
摘要:有关概念: 最小生成树:在连通图G中,连接图G所有顶点且总权最小的边构成的树 思路: 首先对边按权从小到大排序,紧接着枚举每一条边,如果两个结点的祖先结点不同(并查集),则连上此边,直到边数等于结点数-1即可 邻接矩阵输入,用类邻接表存储方式存边 1 #include<cstdio> 2 #incl 阅读全文
posted @ 2016-10-12 16:07 xqmmcqs 阅读(196) 评论(0) 推荐(0)
摘要:有关概念: 如果图中两个结点可以相互通达,则称两个结点强连通。 如果有向图G的每两个结点都强连通,称G是一个强连通图。 有向图的极大强连通子图(没有被其他强连通子图包含),称为强连通分量。(这个定义在百科上和别的大神的博客中不太一样,暂且采用百科上的定义) Tarjan算法的功能就是求有向图中的强连 阅读全文
posted @ 2016-10-12 16:04 xqmmcqs 阅读(291) 评论(0) 推荐(0)
摘要:有关概念: 最短路问题:若在图中的每一条边都有对应的权值,求从一点到另一点之间权值和最小的路径 SPFA算法的功能是求固定起点到图中其余各点的的最短路(单源最短路径) 约定:图中不存在负权环,用邻接表存储有向图,di存放从起点到结点i的最短路,q为队列,保存待处理节点 思路: 首先指定起点入队,取当 阅读全文
posted @ 2016-10-12 15:52 xqmmcqs 阅读(199) 评论(0) 推荐(0)
摘要:有关概念: 最近公共祖先(LCA,Lowest Common Ancestors):对于有根树T的两个结点u、v,最近公共祖先表示u和v的深度最大的共同祖先。 Tarjan是求LCA的离线算法(先存储所有询问,再进行运算) 思路: 从根结点开始DFS,对遍历到的结点u标记已访问,创建新集合,元素为u 阅读全文
posted @ 2016-10-12 15:36 xqmmcqs 阅读(795) 评论(1) 推荐(2)

1