图论
文章平均质量分 62
从入门到入坑
等到OneNote容量不够, 再把存货搬上来
展开
-
AcWing 1207. 大臣的旅费(DFS求树的直径)
题目描述原题链接很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的事情。他有一个钱袋,用于存放往来城市间的路费。聪明的J发现,如果不在某个城市停下来修整,原创 2021-03-28 13:32:43 · 153 阅读 · 0 评论 -
AcWing 257. 关押罪犯 (贪心 + 拓展域并查集)
题目描述原题链接分析首先根据怨气值ccc从大到小排序, 我们要求最小的怨气值, 所以对每一对有仇恨关系的罪犯,要尽可能的分到两座监狱中.但是存在一种情况, 这一对罪犯A,BA,BA,B必须位于同一座监狱:即两座监狱中存在罪犯CCC与这两名罪犯A,BA,BA,B中的一位有仇恨关系.而根据之前排序可知, CCC与AAA或BBB的怨气值一定大于A,BA,BA,B的怨气值,则A,BA,BA,B的怨气值 ccc 就是答案(贪心)而两座监狱, 我们可以维护拓展域并查集: 对于罪犯i,p[i]表示i原创 2021-03-14 15:56:48 · 137 阅读 · 0 评论 -
AcWing 1250. 格子游戏(并查集判环 哈希)
题目描述分析首先考虑如何形成一个环(封闭的圈), 即当两点已经连通时,再从两点间连一条线,便可以形成环如何判断两点是否连通? 使用并查集.此题是二维坐标,不过我们可以使用x*(n-1)+y将二维坐标系上的每个点唯一映射到一维坐标系上来.从而使用并查集判断连通性, 进而判环得到答案实现#include <cstdio>#include <iostream>#include <cstring>using namespace std;const原创 2021-03-14 14:23:44 · 117 阅读 · 0 评论 -
AcWing 257. 关押罪犯 (二分 + 染色法判断二分图)
题目描述原题链接分析货仓选址模型也可参考Y总视频讲解实现#include <cstdio>#include <iostream>#include <cmath>#include <algorithm>using namespace std;typedef long long ll;const int N = 1e6 + 9;int n;ll sum[N], ans, avg;int main(){ sca原创 2021-03-14 11:30:14 · 156 阅读 · 0 评论 -
计蒜客 A1594 封印之门 有向图的全源最短路问题
题目描述原题链接蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手。幸运的是,小岛上有一扇上古之神打造的封印之门,可以通往近卫军团,传闻至今没有人能解除封印。封印之门上有一串文字,只包含小写字母,有 kkk 种操作规则,每个规则可以把一个字符变换成另外一个字符。经过任意多次操作以后,最后如果能把封印之门上的文字变换成解开封印之门的文字,封印之门将会开启。蒜头君战斗力超强,但是不擅计算,请你帮忙蒜头君计算至少需要操作多少次才能解开封印之门。输入格式输入第一行一个字符串,长度不大原创 2021-01-24 15:16:21 · 194 阅读 · 0 评论 -
PAT 1003 Emergency 统计最短路径
文章目录题目描述实现1: DFS分析:代码:实现2: 用Dijkstra求最短路的同时计数完整代码题目描述原题链接题目大概是要求出无向图中的最短路j经条数, 还要求出所有最短路当中, 经过点的权值之和的最大值实现1: DFS分析:题目数据量最大为500个点, 数据量较小, 可以进行dfs代码:// 500个点, 直接深搜#include <cstdio>#include <iostream>#include <cstring>#inc原创 2021-01-13 15:11:58 · 201 阅读 · 0 评论