摘要: 差分约束系统: 给出有n个变量和m个约束条件(形如ai-aj<=k的不等式)的系统,求出满足这些约束条件的一组变量 那么……思路是把数的模型转换成图的模型,求解一个单源最短路径问题: 当有ai-aj<=k这个条件时,即在图中创建一条从aj指向ai的有向边,设置边权为k 然而还要创建一个起点,可以把它 阅读全文
posted @ 2016-10-15 23:02 xqmmcqs 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codevs.cn/problem/1021/ 题解: 哦!最小值的最大值!!二分!!!……咳咳…… SPFA算法,邻接表(邻接矩阵应该不会炸,懒得试了……) 先进行一遍SPFA,用pre数组记录1到n的最短路径,之后枚举这条路径上的每一条边为“堵车”的路,删除该边并进行SP 阅读全文
posted @ 2016-10-15 22:53 xqmmcqs 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 有关概念: 最小生成树:在连通图G中,连接图G所有顶点且总权最小的边构成的树 思路: 首先对边按权从小到大排序,紧接着枚举每一条边,如果两个结点的祖先结点不同(并查集),则连上此边,直到边数等于结点数-1即可 邻接矩阵输入,用类邻接表存储方式存边 1 #include<cstdio> 2 #incl 阅读全文
posted @ 2016-10-12 16:07 xqmmcqs 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 有关概念: 如果图中两个结点可以相互通达,则称两个结点强连通。 如果有向图G的每两个结点都强连通,称G是一个强连通图。 有向图的极大强连通子图(没有被其他强连通子图包含),称为强连通分量。(这个定义在百科上和别的大神的博客中不太一样,暂且采用百科上的定义) Tarjan算法的功能就是求有向图中的强连 阅读全文
posted @ 2016-10-12 16:04 xqmmcqs 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 有关概念: 最短路问题:若在图中的每一条边都有对应的权值,求从一点到另一点之间权值和最小的路径 SPFA算法的功能是求固定起点到图中其余各点的的最短路(单源最短路径) 约定:图中不存在负权环,用邻接表存储有向图,di存放从起点到结点i的最短路,q为队列,保存待处理节点 思路: 首先指定起点入队,取当 阅读全文
posted @ 2016-10-12 15:52 xqmmcqs 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 有关概念: 最近公共祖先(LCA,Lowest Common Ancestors):对于有根树T的两个结点u、v,最近公共祖先表示u和v的深度最大的共同祖先。 Tarjan是求LCA的离线算法(先存储所有询问,再进行运算) 思路: 从根结点开始DFS,对遍历到的结点u标记已访问,创建新集合,元素为u 阅读全文
posted @ 2016-10-12 15:36 xqmmcqs 阅读(778) 评论(1) 推荐(2) 编辑
摘要: 首篇博客,正式开坑…… 阅读全文
posted @ 2016-10-11 17:19 xqmmcqs 阅读(102) 评论(0) 推荐(0) 编辑