![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
图论
文章平均质量分 70
图论
幽影相随
这个作者很懒,什么都没留下…
展开
-
Escape(二分图多重匹配)
Problem2012 If this is the end of the world how to do? I do not know how. But now scientists have found that some stars, who can live, but some people do not fit to live some of the planet. Now scientists want your help, is to determine what all of people原创 2021-03-02 09:30:34 · 215 阅读 · 0 评论 -
51nod 2840 ATM(tarjan,缩点,dfs)
2840 ATMSiruseri 城中的道路都是单向的。不同的道路由路口连接。按照法律的规定, 在每个路口都设立了一个 Siruseri 银行的 ATM 取款机。令人奇怪的是,Siruseri 的酒吧也都设在路口,虽然并不是每个路口都设有酒吧。Banditji 计划实施 Siruseri 有史以来最惊天动地的 ATM 抢劫。他将从市中心 出发,沿着单向道路行驶,抢劫所有他途径的 ATM 机,最终他将在一个酒吧庆 祝他的胜利。使用高超的黑客技术,他获知了每个 ATM 机中可以掠取的现金数额。他希 望你帮助他原创 2021-01-01 22:40:41 · 139 阅读 · 0 评论 -
51nod 2664 字母表(DAG)
2664 字母表给你n个按照特殊字典序排好序的单词,你来设计一种字典序,使得按照你的这种字典序来排序这n个单词,得到的结果与给出的单词序列相同。如果做不到,请输出Impossible。例如6个单词:aaacabbaca不存在任何字典序,可以满足按照该方法排序,能够得到上面的顺序。我们默认空字符是字典序小的,所以a < aa。输入第一行:1个数n(1 ≤ n ≤ 100)。后面n行:每行一个单词,只包括a-z这26个小写字符,单词长度L<= 100。输出输出共26个字母,对原创 2020-12-28 19:33:00 · 284 阅读 · 0 评论 -
P5905 【模板】Johnson 全源最短路
P5905 【模板】Johnson 全源最短路题目链接代码实现#include <bits/stdc++.h>using namespace std;const int N = 5005;const int M = 60006;const int INF = 1e9;struct edge { long long v, w, next;} e[M];struct node { int id; long long w; const bool原创 2020-12-28 17:46:32 · 74 阅读 · 0 评论 -
51nod 1693 水群(思维,最短路,spfa)
1693 水群总所周知,水群是一件很浪费时间的事,但是其实在水群这件事中,也可以找到一些有意思的东西。比如现在,bx2k就在研究怎样水表情的问题。首先,bx2k在对话框中输入了一个表情,接下来,他可以进行三种操作。第一种,是全选复制,把所有表情全选然后复制到剪贴板中。第二种,是粘贴,把剪贴板中的表情粘贴到对话框中。第三种,是退格,把对话框中的最后一个表情删去。假设当前对话框中的表情数是num0,剪贴板中的表情数是num1,那么第一种操作就是num1=num0第二种操作就是num0+=num原创 2020-12-16 20:12:47 · 184 阅读 · 0 评论 -
匈牙利算法(模板)
匈牙利算法(模板)bool map[201][201],vis[201];//map保存两点间是否有边,vis保存每次操作后该数是否操作过int link[201];//link保存改点连接的另一点的序号int m,n;bool find(int k){//对k寻找匹配,如果找到就记录匹配,并返回true,否则返回false int i,j; for(i=1;i&l...转载 2019-04-17 20:48:01 · 1168 阅读 · 0 评论 -
Operating on a Graph(并查集,区域染色)
Operating on a Graph题目描述You are given a graph containing n vertices and m edges. Vertices are numbered from 0 to n-1. Initially, vertex i belongs to group i. We define a group A is connected to group B if and only if there exists at least an edge that co原创 2020-07-19 12:21:22 · 404 阅读 · 0 评论 -
A Bug's Life(并查集,更新)
A Bug’s LifeBackgroundProfessor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of the o...原创 2020-05-01 10:43:56 · 350 阅读 · 0 评论 -
Navigation Nightmare(带权并查集)
Navigation NightmareFarmer John’s pastoral neighborhood has N farms (2 <= N <= 40,000), usually numbered/labeled 1…N. A series of M (1 <= M < 40,000) vertical and horizontal roads each of...转载 2020-05-01 10:16:23 · 565 阅读 · 0 评论 -
HDU 2680 Choose the best route (SPFA 模板)
SPFA简介SPFA 算法是 Bellman-Ford 算法的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同,为 O(VE)。求一个点到其他所有点的最短路,时间快。队列处理,队头元素所有相邻的点进行松弛,若某个相邻的点松弛成功,则将其入队。直到队列为空时算法结束。模板代码struct edge { ...原创 2020-01-28 22:43:42 · 118 阅读 · 0 评论 -
Tarjan 算法
Tarjan基础强连通:在有向图中,两个顶点可以互相到达,则称两点强连通,如果每两个顶点都可以强连通则为强连通图。强连通分量:非强连通图的极大强连通子图,即非强连通图中的是强连通的子图。目的求有向图中强连通分量。简介Tarjan 算法是用来求强连通分量的,它是一种基于DFS(深度优先搜索)的算法,每个强连通分量为搜索树中的一棵子树。并且运用了数据结构栈。先引入两个非常重要的数组:d...原创 2020-01-16 22:32:23 · 117 阅读 · 0 评论 -
Fire-Fighting Hero(dijkstra堆优化)
Fire-Fighting Hero题解这题目真的恶心,在考理解?还是猜测?求英雄到各个点的最短路中的最大的和各个消防队到每个点的最短路中最大的最后比较代码#include<cstdio>#include<vector>#include<queue>#include<utility>#include<cstring>...原创 2019-09-08 17:04:56 · 1532 阅读 · 0 评论 -
dijkstra 堆优化 + 路径
#include<cstdio>#include<vector>#include<queue>#include<utility>#include<cstring>using namespace std;#define MAXN 1020#define INF 0x3ftypedef long long ll;//b、di...原创 2019-09-08 14:52:22 · 1336 阅读 · 0 评论 -
Floyd - Warshall(弗洛伊德算法)
最短路题目描述给一张无向图G(U, E), 询问任意两点的最短距离。输入第一行两个整数n,m表示图中结点数和边的数量, 结点从1到n编号。接下来m行,每行三个整数u,v,w表示u,v之间有一条距离为w的边。接下来一行一个整数q,表示询问次数。接下来q行每行两个整数u,v,表示询问u到v的最短距离, 如果u不能到达v输出-1。数据范围:n <= 100, m <= 500...原创 2019-06-15 21:56:01 · 1694 阅读 · 0 评论 -
dijkstra(迪杰斯特拉算法)
最短路径问题Til the Cows Come Home dijkstra#include <iostream>#include <cstdio>#include <cstring>#include <string>using namespace std;int t,n;int map[3000][3000];void dijks...原创 2019-06-06 17:33:35 · 1757 阅读 · 0 评论 -
最小割(Stoer-Wagner算法)
Stoer-Wagner算法简介:割:在一个图G(V,E)中V是点集,E是边集。在E中去掉一个边集C使得G(V,E-C)不连通,C就是图G(V,E)的一个割;最小割:在G(V,E)的所有割中,边权总和最小的割就是最小割。例题:Minimum Cut描述:n个顶点。下面是m行,a,b,c,这意味着有c个边连接顶点a和b。#include <iostream>#includ...原创 2019-07-24 16:17:32 · 2716 阅读 · 0 评论 -
最大流(Dinic算法)
Dinic算法简介:相较 Edmonds-Karp 算法而言,为防止每进行一次增广,都要做一遍BFS,时间复杂度过高,用于减少所作 BFS 次数。因而 Dinic 算法在 EK 算法的基础上增加了分层图的概念,根据从s到各个点的最短距离的不同,把整个图分层。过程:先利用BFS对残余网络分层,一个节点的深度,就是源点到它最少要经过的边数。利用BFS对残余网络分层,分完层后,利用DFS从...原创 2019-07-23 17:20:58 · 2919 阅读 · 1 评论 -
最大流(Edmonds-Karp算法模板)
草地排水题目描述 Description在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水。这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间。因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小溪)。作为一名一流的技师,农夫约翰已经在每条排水沟的一端安上了控制器,这样他可以控制流入排水沟的水流量。农夫约翰知道...原创 2019-07-23 15:40:29 · 1151 阅读 · 0 评论 -
John's trip(欧拉回路:输出回路)
John’s trip题意Johnny拥有了一辆新车,他准备驾车在城里拜访他的朋友们。Johnny要去拜访他所有的朋友。他有许多朋友,每一条街道上就有一个朋友。他就开始考虑如何使得他的路程尽可能短,不久他就发现经过城里的每条街道一次且仅仅一次是最好的方法。当然,他要求路程的结束和开始是在同一地点,他父母的家。在Johnny所在的城里,街道用从1到n的整数来标识,n<1995。街道口用从...原创 2019-08-08 14:16:40 · 1295 阅读 · 0 评论