图论
文章平均质量分 96
Konago
这个作者很懒,什么都没留下…
展开
-
图的拓扑排序
定义:对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。来自h...原创 2017-10-15 23:31:36 · 1827 阅读 · 0 评论 -
二分图带权匹配(KM算法)
模板题一一切尽在代码中#include<bits/stdc++.h>using namespace std;const int maxn = 55;const int inf = 1 << 30;const int64_t mod = 1e9 + 7;int w[maxn][maxn];int lx[maxn], ly[maxn];int lin...原创 2018-06-24 23:26:07 · 277 阅读 · 0 评论 -
POJ 2762 Going from u to v or from v to u?
题目链接:http://poj.org/problem?id=2762缩点后判断出度或者入度为0的点的个数#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<map>#include<vector>#include&l...原创 2018-07-08 23:16:03 · 232 阅读 · 0 评论 -
Havel-Hakimi定理
Havel-Hakimi定理:给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化。进一步,若图为简单图,则称此序列可简单图化。题目:http://poj.org/problem?id=1659#include<cstdio>#include<iostream>#include<cstring>...原创 2018-07-08 23:19:49 · 372 阅读 · 0 评论 -
割点 桥
割点(割顶):一个结点称为割点(或者割顶)当且仅当去掉该节点极其相关的边之后的子图不连通。模板题:https://www.luogu.org/problemnew/show/P3388#include<bits/stdc++.h>using namespace std;const int maxn = 3e5 + 5;int n, m, inde;vector<in...原创 2018-07-03 02:31:28 · 188 阅读 · 0 评论 -
分解强连通分量
模板题目:http://poj.org/problem?id=2553Kosaraju:按顺序对原图和反图DFS一遍,在第二次DFS时点u可达未DFS的点v则u,v属于同一个联通分量#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include&l...原创 2018-06-28 21:56:31 · 238 阅读 · 0 评论 -
简单莫队
题目:小Z的袜子莫队:当年国家队队长莫涛大犇发明的算法orz一开始T到怀疑人生最后发现用重载小于号的排序就gg,改成两个函数就ok了!!,暂时不知道为什么orz#include<bits/stdc++.h>using namespace std;const int maxn = 50010;const int64_t mod = 1e9 + 7;int n, m;int...原创 2018-06-29 01:48:23 · 302 阅读 · 0 评论 -
点/边双联通分量
点联通分量:求割点时已经遍历完一个联通分量,弹栈至改割点即可题目链接:http://poj.org/problem?id=1523#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<map>#include<vector>...原创 2018-07-05 18:20:45 · 281 阅读 · 0 评论 -
LCA(倍增,RMQ,Tarjan)
LCA(Least Common Ancestors):最近公共祖先题目:https://www.luogu.org/problemnew/show/P3379倍增先预处理出每个结点向上跳2^x层的祖先和每个结点的深度类似快速幂,拆分deep[u] - deep[v](假设deep[u] > deep[v]),每次使u向上跳2^x步,使deep[u] = deep[v]然...原创 2018-07-21 14:11:49 · 423 阅读 · 0 评论 -
hdu 3461 Code Lock
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3461题意:题意很难懂原创 2018-06-02 20:52:09 · 254 阅读 · 0 评论 -
最小树形图
模板题:poj3164定义:一个有向图,存在从某个点开始的到达所有的的一个最小生成树,则它就是最小树形图。朱-刘算法的大概过程如下:1、找到除了root以为其他点的权值最小的入边。用In[i]记录2、如果出现除了root以外存在其他孤立的点,则不存在最小树形图。3、找到图中所有的环,并对环进行缩点,重新编号。4、更新其他点到环上的点的距离 假设有重新编号之...原创 2018-05-14 16:12:10 · 201 阅读 · 0 评论 -
poj 2492 A Bug's Life
题目链接:http://poj.org/problem?id=2492题意:给你m对虫子 判断中间有没有同性别在一起的思路:基础种类并查集#include#include#include#include#include#include#includeusing namespace std;const int maxn = 10005;int n, m, T;原创 2018-04-12 00:37:01 · 169 阅读 · 0 评论 -
图的常见储存方式
1:最简单的邻接矩阵:map[i][j] =边 i -> j 的权值,i,j没有边就置为inf,显然map[i][i] = 0原创 2017-10-11 21:04:29 · 562 阅读 · 0 评论 -
欧拉图
欧拉路定义:对于连通图G,若存在一个路径经过每条边且仅一次,称该路为欧拉路;若存在一个回路经过每条边且仅一次,称该回路为欧拉回路;有定理如下:1:无向图G具有欧拉路当且仅当G是连通图,并且有0个或者两个奇度数结点。(0个的时候存在欧拉回路)。2:有向图G具有欧拉回路当且仅当每个结点的入度等于出度。3:有向图G具有欧拉路当且仅当除了两个结点,其他的结点出度等于入度,这两个结点一个原创 2017-10-19 21:29:36 · 554 阅读 · 0 评论 -
最短路(常用算法)
模板题目:http://acm.hdu.edu.cn/showproblem.php?pid=2544n是顶点数,m是边数,参数s是源点,把各个点到源点的最短距离保存在d[maxn]中。Dijkstra:复杂度O(n^2)#include#include#include#include#define maxn 105#define inf 100000u原创 2017-09-06 16:58:34 · 310 阅读 · 0 评论 -
次短路
模板题:http://poj.org/problem?id=3255和用堆实现的Dijkstra差不多#include#include#include#include#include#include#include#define maxn 5005using namespace std;typedef pair P;const int inf = 1000000原创 2017-11-02 01:31:14 · 193 阅读 · 0 评论 -
最短路条数
模板题目:http://acm.uestc.edu.cn/#/problem/show/1147此题数据较大所以用的long long 核心思想是:设N为可以到v点的点集,vis[x]为s到x的最短路数,d[x]是s到x的最短距离,则vis[v]等于所有满足d[n] + dis[n][v] = d[v]的点n的vis[n]相加 在更新最短距离时,由于这个点不一定是第一次更新,所以直接...原创 2017-11-03 00:06:48 · 1272 阅读 · 0 评论 -
poj 1364 King(hud 1531)
题目链接:http://poj.org/problem?id=1364题意:有n个未知数的序列,x1到xn,现在给你一些关系,这个序列从a开始b项的和与k的关系,大于和小于的关系,问有没有满足条件的序列思路:设Sx为前x-1项和,所以xi+....xj == S(j+1) - Si,于是有了S(j+1) - Si与k的大小关系;为了保证这是一个连通图,加一个源点S,连接其他点,权值为0原创 2017-11-13 22:49:34 · 219 阅读 · 0 评论 -
hdu 1534 Schedule Problem
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1534基础差分约束;#include#include#include#include#includeusing namespace std;const int maxn = 1005;const int inf = 1e9 + 7;int l[maxn];int n,原创 2017-11-15 01:18:44 · 227 阅读 · 0 评论 -
hdu 5971Wrestling Match
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5971题意:题不好懂大致就是给你方向不确定的边,和一些确定的点的属性, 问这个图可不可以是二分图#include#include#include#include#include#include#include#define maxn 1005using namespace原创 2017-11-05 23:53:42 · 158 阅读 · 0 评论 -
2-SAT
2-SAT一切尽在链接中模型一:两者(A,B)不能同时取 那么选择了A就只能选择B’,选择了B就只能选择A’ 连边A→B’,B→A’ 模型二:两者(A,B)不能同时不取 那么选择了A’就只能选择B,选择了B’就只能选择A 连边A’→B,B’→A 模型三:两者(A,B)要么都取,要么都不取 那么选择了A,就只能选择B,选择了B就只能选择A,选择了A’就只...原创 2018-07-27 19:35:55 · 1022 阅读 · 0 评论