图论
Ogmx
学海无涯~
展开
-
图论相关概念及术语总结
前言:本文主要从数学角度,简单介绍了图论中的一些概念与术语,主要基于教材《图论及其应用》(北京邮电大学出版社)的前6章内容,如有错误,诚请指正1.图的概念1.1 图的定义1.1.1 无向图相关定义 顶点集/节点集: 其中每个元素称为图G的一个顶点/节点 边集: 其中每个元素 是图G的一条边 图: 其中V(G)为顶点集,E(G...原创 2020-12-17 23:27:53 · 12800 阅读 · 3 评论 -
BAPC 2010(Gym-101078J)J.Wrong Answer-二分图最大独立集
题意:在一个网格中玩填字游戏,因为有很多种填法,所以某个位置可能发生冲突,我们可以不填一些单词来避免冲突,求在没有冲突的情况下,最多能填多少个单词思路:首先对每个填入单词编号,由于填入单词分为横向和纵向的,而冲突只会发生在横向与纵向两个单词中,所以这构成了一个二分图,横向单词为一组,纵向单词为一组,若两单词发生冲突,则在两个单词间建立一条边求没有冲突的最多填词数,就等同于二分图的最大独...原创 2018-10-18 18:19:32 · 241 阅读 · 0 评论 -
cf 154-C. Double Profiles-图+hash
题意:对于一对点(a,b),若除a、b之外的每个点k,要么k与a、b都相连,要么k与a、b都不相连,a与b直接相不相连都可 求有多少对(a,b)满足这样的条件思路:只有a和b的连接情况完全相同时,这样的(a,b)才成立,分为a和b相连和a和b不相连两种情况考虑 若a和b相连,对于相连的a和b,每个点最后的值要加上它本身 若a和b不相连,直接判断是否相等即可 对1~n的每个点...原创 2018-09-13 21:22:49 · 209 阅读 · 0 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛-Fantastic Graph-有源汇上下界可行流
题意:给出一个二分图,初始各个点度数均为0,每选择一条边,则相应的两点的度数+1,并给出上下界L~R,求能否构成一个网络,使每个点的度数都在L~R之间思路:有源汇上下界可行流,先添加一个源点连接所有左侧点,添加一个汇点,使所有右侧点连向汇点,根据上下界网络流做法,还需添加一个附加源点和附加汇点,表示必要弧 具体方法讲解见https://blog.csdn.net/u01100...原创 2018-09-10 18:21:15 · 178 阅读 · 0 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛-Made In Heaven-K短路
题意:求第k短路,并判断第k短路的花费是否大于T思路:K短路模板题,spfa+A*,注意A*的写法,否则容易MLE或TLE,(别问我怎么知道的…..)代码:#include <iostream>#include <stdio.h>#include <cstring>#include <queue>using原创 2018-09-10 13:49:33 · 263 阅读 · 0 评论 -
cf-543-B.Destroying Roads-最短路+暴力
题意:有n个点,m条边,每条边的长度为1,给出s1,t1,l1表示s1到t1点路径长度不能超过l1,同理对于s2,t2,l2 现要求满足条件下,最多能删多少条边思路:删去最多的边,就是要用最少的边,所有s1->t1和s2->t2要在满足各自要求的前提下,尽可能多的共用一些边 由于n<=3000,可以用spfa在O(n^2)的时间内预处理出任意两点间的最...原创 2018-09-06 20:11:52 · 232 阅读 · 0 评论 -
POJ-3255-Roadblocks-次短路
题意:求次短路思路:利用spfa算法,先求出以1为起点的单源最短路存入d[],再求出以n为起点的单源最短路存入d1[] 若当前存在一条边(u,v)则d[u]+d1[v]+cost[u][v],即为1~n的一条可能路径 遍历所以边,超出一条大于最短路且最短的可能路径,即是次短路代码:#include<iostream>#i...原创 2018-09-02 20:56:54 · 152 阅读 · 0 评论 -
JSK习题:祖宗十九代-LCA
思路:经典LCA问题,且只有一次询问,可以用普通方法,即两结点向根作线,两线第一次交点即是答案代码:#include <iostream>#include <string.h>using namespace std;int fa[10005];bool vst[10005];void sig(int a){ if(a==-1) ret...原创 2018-09-02 20:55:59 · 602 阅读 · 0 评论 -
JSK习题:男女分组-二分图匹配-匈牙利算法
思路:二分图匹配模板题,将男生分到集合X,女生分到集合Y,建立图,将X中点连向Y,套用模板即可注意:要看好点的编号是从1开始还是从0开始代码:#include <iostream>#include <string.h>using namespace std;const int MAX_N = 1000; // X 集合中的顶点数上限cons...原创 2018-09-02 20:55:03 · 804 阅读 · 0 评论 -
JSK习题:蒜头君的银行卡-约束差分
思路:约束差分,若a-b<=c ,则建立b->a的边,权值为c。根据题意建图,插入超级源点,到达所有顶点且权值为0。注意:a=b,就相当于a<=b && a>=b 即建立a->b 权值为0的边和b->a 权值为0的边。代码:#include <iostream>#include <string.h>...原创 2018-09-02 20:54:08 · 420 阅读 · 0 评论 -
JSK习题:成仙之路-(POJ1062)-最短路+限定条件(枚举区间多次最短路)
题意:。。。思路:建图时,若物品a能有物品b和c代替,则将b和c连向a,注意要用有向图存。 处理等级限制,枚举最小等级,进行多次最短路计算,求最小值即可。代码:#include <iostream>#include <string.h>#include <algorithm>#include <que...原创 2018-09-02 20:53:10 · 267 阅读 · 0 评论 -
JSK习题:闯关游戏-SPFA,判断环
题意:。。。思路:先将所有输入w取反,表示消耗,SPFA中记录每个点入队次数,若v入队次数>n,表示存在负环,则记d[v]=-inf,且不再入队代码:#include <iostream>#include <string.h>#include <queue>using namespace std;const int ...原创 2018-09-02 20:52:15 · 537 阅读 · 0 评论 -
JSK-习题:圣诞树-最短路-特殊生成树
思路:树的总价就是 每个结点的权值*到该点的最短路代码:#include <iostream>#include <string.h>#include <set>using namespace std;const int MAX_N=100000;const int MAX_M=100000;const long long INF=0x...原创 2018-09-02 20:50:59 · 516 阅读 · 0 评论 -
2018HDU多校1-1003-Triangle Partition(hdu 6298)-简单图论
题意:给出一个无向图,每个边有一个标号,在标号相同的边上走不增加花费,每走到标号不同的边上时,花费+1,求从1~n的最小花费思路:与最短路问题极为相似,考虑对最短路算法进行修改 在spfa算法的基础上,遍历每个点,使用set记录由哪条边到达该点,若花费相同时,优先选由相同标号边到达的点,不同时按照正常spfa选择花费小的点,这样既可得到答案 其他方法...原创 2018-08-29 20:42:23 · 212 阅读 · 0 评论 -
HDU-6214-Smallest Minimum Cut-最小割边数
题意:求最小割的边数思路:由最大流最小割定理,该题等同于最大流,求最小割边数,对边权乘个比边大点的数比如300,再加1 ,最后,最大流对300取余就是边数啦 addedge(u,v,e.c*BIG+1) ans=maxf()%BIG代码:#include &lt;iostream&gt;#include &lt;string.h...原创 2018-09-02 20:57:28 · 163 阅读 · 0 评论 -
JSK-习题:受欢迎的蒜头-Tarjan强连通分量+缩点 (POJ2186)
思路:在有向无环图中,若任意点都能到达点A,那么有且仅有A点的出度为0,而题中可能包含环,通过缩环,构成新的有向无环图,若a欢迎b,则将a连向b,通过Taijan缩环模板处理,得到各点所在强连通分支,再通过出度判断,即可求解。代码:#include <iostream>#include <string.h>using namespace std;con...原创 2018-08-31 22:27:36 · 167 阅读 · 0 评论 -
JSK-习题:威虎山上的分配-拓扑排序
思路:若a比b钱少,则从a连向b,进行一次拓扑排序后,即可从小到大确定顺序代码:#include <iostream>#include <string.h>#include <algorithm>#include <queue>#include <math.h>using namespace std;const...原创 2018-08-31 22:26:01 · 205 阅读 · 0 评论 -
JSK-习题:判断欧拉回路-欧拉图
思路:使用无向图找欧拉图模板判断联通性,再由欧拉图的性质,即可判断欧拉图性质:无向图:联通+所有点的度数为偶数 无向图:联通+所有点的入度数=出度数代码:#include <iostream>#include <string.h>using namespace std;const int MAX_N=10...原创 2018-08-31 22:24:23 · 868 阅读 · 0 评论 -
2018HDU多校7-1001-Age of Moyu(hdu 6386)-最短路变形
题意:给出一个无向图,每个边有一个标号,在标号相同的边上走不增加花费,每走到标号不同的边上时,花费+1,求从1~n的最小花费 (狗才摸鱼..)思路:与最短路问题极为相似,考虑对最短路算法进行修改 在spfa算法的基础上,遍历每个点,使用set记录由哪条边到达该点,若花费相同时,优先选由相同标号边到达的点,不同时按照正常spfa选择花费小的点,这样既可得到答案...原创 2018-08-31 00:12:34 · 178 阅读 · 0 评论