
图论
文章平均质量分 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 · 1917 阅读 · 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 · 360 阅读 · 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 · 275 阅读 · 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 · 460 阅读 · 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 · 226 阅读 · 0 评论 -
分解强连通分量
模板题目:http://poj.org/problem?id=2553 Kosaraju:按顺序对原图和反图DFS一遍,在第二次DFS时点u可达未DFS的点v则u,v属于同一个联通分量 #include<cstdio> #include<iostream> #include<cstring> #include<queue> #include&l...原创 2018-06-28 21:56:31 · 324 阅读 · 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 · 346 阅读 · 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 · 356 阅读 · 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 · 505 阅读 · 0 评论 -
hdu 3461 Code Lock
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3461题意:题意很难懂原创 2018-06-02 20:52:09 · 308 阅读 · 0 评论 -
最小树形图
模板题:poj3164 定义:一个有向图,存在从某个点开始的到达所有的的一个最小生成树,则它就是最小树形图。 朱-刘算法的大概过程如下: 1、找到除了root以为其他点的权值最小的入边。用In[i]记录 2、如果出现除了root以外存在其他孤立的点,则不存在最小树形图。 3、找到图中所有的环,并对环进行缩点,重新编号。 4、更新其他点到环上的点的距离 假设有重新编号之...原创 2018-05-14 16:12:10 · 257 阅读 · 0 评论 -
poj 2492 A Bug's Life
题目链接:http://poj.org/problem?id=2492 题意:给你m对虫子 判断中间有没有同性别在一起的 思路:基础种类并查集 #include #include #include #include #include #include #include using namespace std; const int maxn = 10005; int n, m, T;原创 2018-04-12 00:37:01 · 216 阅读 · 0 评论 -
图的常见储存方式
1: 最简单的邻接矩阵: map[i][j] =边 i -> j 的权值,i,j没有边就置为inf,显然map[i][i] = 0原创 2017-10-11 21:04:29 · 619 阅读 · 0 评论 -
欧拉图
欧拉路定义:对于连通图G,若存在一个路径经过每条边且仅一次,称该路为欧拉路;若存在一个回路经过每条边且仅一次,称该回路为欧拉回路; 有定理如下: 1:无向图G具有欧拉路当且仅当G是连通图,并且有0个或者两个奇度数结点。(0个的时候存在欧拉回路)。 2:有向图G具有欧拉回路当且仅当每个结点的入度等于出度。 3:有向图G具有欧拉路当且仅当除了两个结点,其他的结点出度等于入度,这两个结点一个原创 2017-10-19 21:29:36 · 666 阅读 · 0 评论 -
最短路(常用算法)
模板题目:http://acm.hdu.edu.cn/showproblem.php?pid=2544 n是顶点数,m是边数,参数s是源点,把各个点到源点的最短距离保存在d[maxn]中。 Dijkstra: 复杂度O(n^2) #include #include #include #include #define maxn 105 #define inf 100000 u原创 2017-09-06 16:58:34 · 391 阅读 · 0 评论 -
次短路
模板题:http://poj.org/problem?id=3255 和用堆实现的Dijkstra差不多 #include #include #include #include #include #include #include #define maxn 5005 using namespace std; typedef pair P; const int inf = 1000000原创 2017-11-02 01:31:14 · 281 阅读 · 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 · 1347 阅读 · 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 · 259 阅读 · 0 评论 -
hdu 1534 Schedule Problem
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1534 基础差分约束; #include #include #include #include #include using namespace std; const int maxn = 1005; const int inf = 1e9 + 7; int l[maxn]; int n,原创 2017-11-15 01:18:44 · 299 阅读 · 0 评论 -
hdu 5971Wrestling Match
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5971 题意:题不好懂 大致就是给你方向不确定的边,和一些确定的点的属性, 问这个图可不可以是二分图 #include #include #include #include #include #include #include #define maxn 1005 using namespace原创 2017-11-05 23:53:42 · 202 阅读 · 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 · 1087 阅读 · 0 评论