图论
文章平均质量分 70
海上机械师
同济大学计算机系在读博士研究生,研究兴趣是说话人识别及其相关应用。
博客主要涉及机器学习与深度学习方面的算法介绍,Python、Java 与 Matlab 的编程实现。
展开
-
POJ 3683 Priest John's Busiest Day
题意:安排婚礼。有 n 项婚礼,每项婚礼的举办时间为 s,结束时间为 e,持续时间为 d,婚礼举办开始的时间还有一个特殊的要求必须在(s~s+d)或者(e-d~e),然后输出安排的方式。分析:将 n 项婚礼安排为两组,第一组在 s 的时间开始举办,第二组在 e-d 的时间开始举办,然后这很显然和 2-sat 求解的类型相似,用 2-sat 求解。在处理矛盾建边的过程中,我开始想用原创 2013-05-09 17:02:51 · 838 阅读 · 0 评论 -
Stoer-Wagner算法讲解(图+转载)
算法复杂度为O(n^3)算法理论分析见:http://www.cnblogs.com/ylfdrib/archive/2010/08/17/1801784.html算法步骤:(并点过程示图)寻找 s, t 两点,然后合并于 s 点。以上图像来自论文:http://docs.google.com/fileview?id=0BwxLvD9mcDNtMjk3M转载 2013-08-01 10:30:43 · 7896 阅读 · 0 评论 -
poj 2914 无向图最小割 Stoer-Wagner算法
题意:最少删去多少条边使得图不再是单个双连通分量。思路:1.最小割思路,n 次网络流做法,TLE2.Stoer-Wagner算法(模板),8000+ms,很有压力。Stoer-Wagner算法见#include #include #include using namespace std;const int maxn = 550;const int inf =原创 2013-08-01 10:32:14 · 1708 阅读 · 0 评论 -
hdu 4635 非强连通图最大边数
第四场多校1004题,结果可能超 int,需要理解强连通缩点后图的机构比赛的时候没有搞出来,看来自己不是能力不够,我还不够谈定题意:让一个图作为一个简单图,最多能有几条边。分析:简单图:没有自环(输入中没有)、没有重边(输入中没有)、不是强连通图,输入保证为简单图,在已有的边上,我们只要分析得出这种连通情况下总共能加多少边,然后减去已有的边的个数即可。答案:ans原创 2013-08-02 11:55:03 · 3900 阅读 · 0 评论 -
poj 2942 圆桌骑士 无向图割点 奇圈 交叉染色
连通类经典题题意及分析参考:1.建反向图 2.tarjan 算法求割点3.二部图与奇圈 4.交叉染色http://blog.csdn.net/lyy289065406/article/details/6756821算法:无向图寻找割点的 tarjan 算法,叉分染色。目标:找出图中所有的奇圈(点数大于 3),并标记在圈上的点,最后计算出未被标记的点数。PS:原创 2013-08-02 18:57:55 · 1070 阅读 · 0 评论 -
poj 2762
题意:由 m 条单向边相连的图中,判断任意两点是否单向相通(u -> v 存在,即成立u 到 v 单向相通,即 v -> u 不一定要存在)思路:第一步:缩点(tarjan算法)。在一个强连通分量中任意两点一定相通(双向的)。第二步:判断是否能从一个点搜到每个点,且每个点历遍顺序为 1~n ==> 拓扑排序,每次入队的点有且只有一个,直至排完 n 个点。记录完毕。#inc原创 2013-07-28 14:16:50 · 756 阅读 · 0 评论 -
2014年美国数学建模竞赛C题总结
14年数学建模美赛ICM思路分析与赛后总结我们C题的大致的思路:l 构建合作者网络:0-1邻接矩阵;l 网络属性统计:node, link, cluster, cut,degree, centrality;l AHP, PCA 计算影响系数;l 构建补图网络,加点完善网络关系,同上分析方法计算影响系数;l 网络重构,加点权、边权网络,影响系数重算。问题的结果基本就反映在影响系数上,以及网络关系的调节。 模型的缺点:创新点不足(感觉是鸭梨呀)。 感慨一下,比原创 2014-02-13 13:49:25 · 5402 阅读 · 9 评论 -
2-SAT 理解与模板
自我分析:关于 2-SAT 的代码,有一些矛盾关系一定需要搞清楚;在求解中,用到了 tarjan 算法版本的强连通(SCC)算法;在输出结果时,采用拓扑排序,并同时染色。POJ 2723 – Get Luffy OutPOJ 3207 – Ikki’s Story IV– Panda’s TrickPOJ 3648- WeddingPOJ 3678 – Katu原创 2013-05-09 10:43:26 · 775 阅读 · 0 评论 -
hdu 4612 Warm up 多校总结
题意:求加入一条边(双向)后,图中桥最小的数量。知识点:tarjan算法实现无向图缩点(变成树),求树的最大直径答案 = 连通数 - 树的最大直径 - 1PS:输入存在重边,误删;当两个点由两条边相连时,这两个点连通(因为把重边删了,比赛的时候卡死在那里了)tarjan 算法标记‘边’(无向图)求树的最大直径,使用一个定理,需要两次求最短路原创 2013-07-26 12:45:15 · 1147 阅读 · 0 评论 -
有向图 MST 最小树形图 刘朱算法
复杂度 n^3在一个有向图中寻找最小生成树,即加入所选边使得源点可以到达任一点如果没有源点,可以考虑认为加入一个源点,视题目而定const int maxn = 120;const double inf = 1000000000;struct Edge{ int u, v; double w; void Get( int a, int b, double c) { u原创 2013-07-31 19:14:41 · 1529 阅读 · 0 评论 -
图论知识点列表
图论知识点列表基本图算法图广度优先遍历深度优先遍历拓扑排序割边割点强连通分量Tarjan算法双连通分量强连通分支及其缩点图的割边和割点最小割模型、网络流规约2-SAT问题欧拉回路哈密顿回路最小生成树Prim算法Kruskal算法(稀疏图)Sollin算法次小生成树第k小生成树最优比例生成转载 2013-08-01 09:57:13 · 876 阅读 · 0 评论 -
poj 3648 Wedding
题意:新郎新娘宴会,宴会上一共有 n 对夫妇,编号分别为 0 ~ n - 1,其中新郎新娘编号为 0,丈夫为 h,妻子为 w 。宴会的长桌上,新郎新娘各坐一边,两边人数各为 n。在所有人中,存在 m 对异常关系,现在要求,新娘对面的那一边所有人之间不能存在异常关系,要求你求出新娘的这边的坐的人。这里的异常关系指偷情(男男、男女、女女)。分析:矛盾关系,有异常关系的两人不能同时存在,原创 2013-05-09 16:44:06 · 869 阅读 · 0 评论 -
poj 2723 Get Luffy Out
题意:有 m 层楼,从一层到 m 层,要进入每层都要打开位于该层的两道门中的至少一道。门锁有 2n 种,每个门锁为 2n 种中的一种,可以重复。有 2n 把钥匙,分别对应 2n 种锁,但钥匙两两一组,共 n 组,每组只能选一个来开门,被选中的可重复使用,另一个不能用。问最多能上多少层。分析:二分查找能上的层数。每次对于一个确定的层数,也就确定了哪些门需要开。变为一个2-sat问题。其中两两原创 2013-05-09 11:16:10 · 733 阅读 · 0 评论 -
poj 2749 Building roads
题意:N 头牛要转移到2个聚集地,但是存在一些矛盾关系:1. 有 A 组牛相互敌视,所以不能将他们聚集到一个聚集地。 2. 有 B 组牛相互友好,所以他们一定要聚集在一个聚集地聚集地和每头牛初始时都有位置(x, y ),每头牛走到聚集地需要修路(起点为牛的位置,终点为聚集地,路距为 the Manhattan distance |x1 - x2| + |y1 - y2|),二个聚集点之原创 2013-05-09 16:25:14 · 880 阅读 · 0 评论 -
poj 3463 计算最短与次短路径数
PS:可以用于剖析最短路的算法原理计算最短路与次短路路径数,次短路长度为最短路径+1方法记录最短路径与次短路径,并判断次短路径与最短路径之差是否唯一方法一:反向spfa + dfs(剪枝) ===> TLE方法二:A*搜索(第K短路) ===> MLE方法三:spfa + 优先队列维护 + 递推 ===> AC有向图,用 dist[][2] 分别记录最短与次短,同时更新 d原创 2013-07-15 21:17:26 · 840 阅读 · 0 评论 -
poj 3328 Cliff Climbing 题解
做了这道题目,感觉纯搜索更上一次楼啦。题意:计算从起点 S 走到 终点 T 的最少耗时,范围 60*30。走路分双脚,每次动一个脚,每次走一步有 9 个选择,耗时为 graph[x][y],即 (x, y) 坐标上的数字。其中 ‘X’ 代表不能走,只要有一个脚走到 ‘T’,就表示到终点。终点不止一个!PS:起点为 ‘S’,但分左右脚,即起点踏左脚,右脚就在图外,也就是说先走右脚原创 2013-07-20 12:58:38 · 911 阅读 · 0 评论 -
poj 3687 Labeling Balls 拓扑 + 贪心
题意:n 个点;m 个关系,u -> v:第 u 个点的重量比第 v 个点的重量轻;确定这样的关系是否存在,即是否存在环 ===> 用拓扑排序确定;结果要求:1 - N 点,先满足点 1 重量最小,then 点 2 重量最小,类似字典序。思路:显然 1 - N 点重量为 1-N 中的一个,为使编号越小,重量越小,将编号越大的点使其重量越大。http://blog.sina.co原创 2013-07-30 23:13:12 · 903 阅读 · 0 评论 -
poj 3613 Cow Relays
题意:已知起点 s 与终点 e,要求走 N 条边的最短路。思路:应用动态规划的思维。邻接矩阵上的乘法,应用快速幂。参考论文:*俞华程《矩阵乘法在信息学中的应用》PS:网上解题报告看过很多,但我觉得推导中都偏重与 floyd 算法。论文里邻接矩阵乘法的内容,很好的解释了,为什么答案是一个矩阵连乘的结果。纪念一下这道题。/*无向图,已知起点和终点,要求走严原创 2013-07-24 16:43:17 · 728 阅读 · 0 评论 -
poj 3694 Network LCA最小公共祖先
发表一下感觉,脑子快傻的时候发现有人用 LCA,呀!行呀,学学,然后思路就清晰了题意:让我们计算每次加一条边后图中还有有几个桥。理解:先把图缩点成一棵树,然后找所加边两端点的 LCA(最小公共祖先),就可以判断两端点到其的桥都不再是桥,因为加了这一条边以后这条直径成了一个环PS:这道题目的点有 10W 个,因此如果每次加边之后再用 tarjan 算法求桥,果断的 TLE原创 2013-07-31 18:23:05 · 841 阅读 · 0 评论 -
2019 年中国研究生数学建模竞赛 F 题
2019 年中国研究生数学建模竞赛 F 题题目:多约束条件下飞行器航迹快速规划摘要:针对飞行器航迹规划问题,考虑误差校正点约束与飞行转弯半径约束,设计满足飞行规则与约束的航迹规划路径,优化航迹长度最与经过的校正点次数。该问题属于多目标优化问题,将经过的校正点次数转化为约束,从而求解航迹长度的单目标优化问题。问题中的累积误差与飞行器前一位置有关,问题中的转弯半径与进入校正点的航向角有关,且这两...原创 2019-09-23 12:04:40 · 6828 阅读 · 2 评论