![](https://img-blog.csdnimg.cn/20210209223941110.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
图论 刷题记录
文章平均质量分 67
最短路、生成树、网络流、拓扑排序等题目的题解
HeartFireY
可能是ACMer、JXNU计算机科学协会前会长
展开
-
2022 CCPC 广州站 E H K L
把原条件转化为求剩余距离,然后转二维数点树状数组维护一下即可。H.GameX稍微玩一下发现每次的最优一定是选择最小的奇数/选择最小的偶数。那么暴力筛2×k2 \times k2×k个数出来统计奇数偶数的个数即可,相等时特判一下下个数字。K.Middle Point Graph贴个题解的分析:L.Station of Fate组合数学,nnn不同球入mmm不同盒,全排列*C[空数][插板数]即可。原创 2022-11-19 11:32:10 · 739 阅读 · 0 评论 -
2022 CCPC 广州站 个人题解C. Customs Controls 2
传送门:https://codeforces.com/gym/104053/problem/C。那么建反图并查集缩点后按照拓扑序对每条边赋值后差分就能求得合法的点权。容易观察到一个限制:对于连向同一个点。,其到起点的路径和一定完全相等。原创 2022-11-19 11:18:40 · 1305 阅读 · 1 评论 -
2022“杭电杯”中国大学生算法设计超级联赛(5)1003.Slipper dijkstra
那么考虑跳操作的性质规律在跑最短路时,对于当前节点。,此时我们会将两个集合入队,这时是通过跳的操作入队。(同一操作执行若干次再次到达当前状态)。首先排除建满边的做法,空间复杂度肯定过不去。给定带边权树,经过边需要花费边权代价。此后我们会发现如果通过任意次操作,集合至多被入队一次,我们在跑。,设能够跳到的点集分别为。,我们可以维护一个表。...原创 2022-08-02 16:56:49 · 225 阅读 · 0 评论 -
“蔚来杯“2022牛客暑期多校训练营3 J.Journey 0-1最短路
给定一个城市有若干十字路口,右转需要等红灯,直行、左转和掉头都需要,求起点到终点最少等几次红灯。可以将每条路径视为点,十字路口处分情况连边,边权赋为。最短路问题,然后直接跑。...原创 2022-07-26 11:23:06 · 171 阅读 · 0 评论 -
“蔚来杯“2022牛客暑期多校训练营3 A.Ancestor LCA+暴力计数
问有多少种方案使得去掉恰好一个关键点使得剩余关键点在树。树上每个节点均有一个权值,给出。,然后枚举所有的关键节点求。处理出所有关键节点的前缀。原创 2022-07-26 11:20:52 · 166 阅读 · 0 评论 -
“蔚来杯“2022牛客暑期多校训练营2 D.[Link with Game Glitch] 二分答案+SPFA判环
显然要生成无限物品,需要存在一个环且沿该环生成一轮得到的物品数目比原来更多,即为环上满足所有的边有。由于可能存在多个环,我们只需要保证最大环不会循环生成即可。显然可以二分答案来做。,使得所有配方间不存在可以循环生成无限物品的局面。个配方,每个配方可以使用。...原创 2022-07-24 15:43:07 · 243 阅读 · 0 评论 -
The 2021 ICPC Asia Shanghai Regional Programming Contest 2021ICPC上海站VP
待补对于给定的p,qp, qp,q,找到a,ba, ba,b满足pq=ab+ba\frac{p}{q} = \frac{a}{b} + \frac{b}{a}qp=ba+ab。找不到输出0 00\ 00 0令x=abx = \frac{a}{b}x=ba,则pq=x+1x\frac{p}{q} = x + \frac{1}{x}qp=x+x1,故可得:qx2−px+q=0qx^2 - px + q = 0qx2−px+q=0,方程解为有理数时p2−4q2\sqrt{p^2 - 4q^2}p2−4原创 2022-07-07 22:45:01 · 1640 阅读 · 3 评论 -
2021ICPC上海 H.Life is a Game Kruskal重构树
给定一张nnn个点mmm条边的无向图,以及qqq个询问。对于每个询问,给定初始点和初始经验值,经过一条边要求当前经验值大于边权,经过一个点后点权累加至经验值。求能够获得的最大经验。首先容易证明,对于最终的答案,两个点之间的所有简单路径上最大边权的最小值 = 最小生成树上两个点之间的简单路径上的最大值 = KruskaKruskaKruskal 重构树上两点之间的 LCALCALCA 的权值那么容易想到对原图建KruskalKruskalKruskal重构树,不妨先对样例建树:红色数字表示KruskalKru原创 2022-07-07 12:34:17 · 355 阅读 · 0 评论 -
AtCoder Beginner Contest 077 D-Small Multiple 妙妙最短路
太妙了将kkk的倍数看作k%0k \% 0k%0的同余类,那么我们发现,对于任何的数字可以表达为+1+1+1和×10\times 10×10的表达式。我们可以发现,+1+1+1会对答案产生+1+1+1的贡献,而×10\times 10×10不会产生贡献。那么我们从iii出发,向(i+1)(i + 1) % k(i+1)建dis=1dis= 1dis=1的边,向i×10i \times 10i×10建立dis=0dis = 0dis=0的边(在完全剩余系中建边),然后求1−01-01−0的最短路即可。答原创 2022-04-02 10:15:32 · 662 阅读 · 0 评论 -
AtcoderBeginerContest245.F EndlessWalk 反图+拓扑排序
|–>传送门<–|题目大意给定一个nnn个节点,mmm条边的简单有向图,问有多少个节点满足作为起点出发时能够到达一个环中。数据范围(n,m≤2×105)(n, m \leq 2 \times 10^5)(n,m≤2×105)。题解首先容易发现,对于一个图,如果没有向外的一条出边,那么该图上所有的点一定可以进环(感性理解)。例如上图,橙色点就是一个被唯一出边指向的点。那么我们记录所有点的出度,然后根据出度直接跑拓扑排序即可。但注意要建反图,否则从连通块能跑出去,但找不到进来的路,相原创 2022-04-01 16:37:01 · 257 阅读 · 0 评论 -
Codeforces Round #770 (Div. 2) E. Fair Share 二分图染色 补
思路题目给定mmm个整数序列,要求尝试找到一种分类方式,将每个序列分到222个可重集合中。要求在分类完成后,两个集合的完全相同。首先考虑一定非法的情况:容易发现:对于某个序列长度为奇数的情况,一定不存在解(无法对半分)对所有的数字开桶记录,如果存在某个数字的出现次数为奇数,则一定不存在对等的分配方案我们可以对每个序列的编号向其元素编号连无向边,可以发现分L,RL,RL,R符合二分图的性质,那么直接遍历二分图进行染色即可。注意,由于序列的编号和元素的编号会发生重叠,因此我们对元素的编号需要进行原创 2022-02-22 12:01:08 · 554 阅读 · 0 评论 -
Codeforces Round #772 (Div. 2) E 二分图染色+拓扑序
思路根据题目描述,显然对于两辆存在关系的车:不可相遇:两车应相反而行一定相遇:两车应相对而行可以发现,两种关系下,车的的方向一定不相同。那么我们可以构造一张二分图,然后对图进行0−10-10−1染色判断合法性。然后考虑排序问题,显然对于存在关系的车(设坐标为xL,xRx_L, x_RxL,xR):不可相遇:xL>xRx_L > x_RxL>xR一定相遇:xL<xRx_L < x_RxL<xR我们规定被染色为000的节点都向左走,染色为1原创 2022-02-21 23:54:30 · 223 阅读 · 0 评论 -
2022牛客寒假算法基础集训营2 G.小沙的身法 LCA 树上前缀和
思路注意模拟样例的时候不要把询问读成连边。。。LCA板题,维护树上前缀和,按照题目要求先跳到uuu再跳到vvv,再调到地上。向高处跳需要消耗高度差的体力,向低处跳不消耗体力。那么需要分三段进行计算:地→a\rightarrow a→a:需要消耗高度aaa的体力。a→ba \rightarrow ba→b:求树上路径,首先从aaa点跳到LCA(a,b)LCA(a, b)LCA(a,b),需要消耗sum[a]−sum[lca]sum[a] - sum[lca]sum[a]−sum[lca],然后从L原创 2022-01-28 11:12:51 · 1257 阅读 · 0 评论 -
图论-二分图专题
图论-二分图专题(二分图匹配、匈牙利算法、KM算法)???? | Powered By HeartFireY | BG???? | 需要的前导知识:图论基础文章目录图论-二分图专题(二分图匹配、匈牙利算法、KM算法)一、二分图-定义与基本性质1.二分图-定义2.二分图-性质3.二分图-判定二、二分图-匹配、最大匹配、完美匹配和最优匹配1.匹配2.最大匹配3.完美匹配4.最优匹配三、二分图-增广路、交错路1.交错路2.增广路四、二分图-最小覆盖、最大独立集1.最小覆盖2.最大独立集五、二分图-匈牙利算法原创 2021-09-08 00:33:14 · 450 阅读 · 1 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(8)Ink on paper 最小生成树
???? | Powered By HeartFireY Problem Description题目大意:几个油滴滴在纸上,以0.5cm/s0.5cm/s0.5cm/s的速度环形扩散,求所有油滴从滴到纸上开始计时,扩散到全部接触时的时间。画个图,立马就明白在干啥了:如果使所有圆环合为如上图所示的接触状态,且每个圆环扩散的速度相同,那么每两个距离最近的圆环必定最先接触,也就是在求起始原点的最小生成树。而要使圆环合并到一滩油滴(感性理解…)所需的时间,就是在求最小生成树上最长边的一半长度除以0.5cm原创 2021-08-13 21:18:43 · 377 阅读 · 0 评论 -
牛客多校7.F.xay loves trees 主席树+dfs序
Problem Ananlysis题目给定两棵根编号为111的树,求一个满足以下要求的最大集合第一棵树上的任意两个元素具有祖先后代关系第二棵树上的任意两个元素不具有祖先后代关系我们可以发现,满足以上两条关系的实际上就是:这些元素在第一棵树中是从上到下的一条链(允许非连续)这些元素在第二棵树中,任意两个元素,不能在从上到下的一条链中我们首先来回顾dfsdfsdfs序的知识:dfsdfsdfs序,顾名思义即为dfsdfsdfs遍历的顺序(时间顺序)。我们用两个数组in[]、o.原创 2021-08-10 10:56:36 · 189 阅读 · 0 评论 -
A*算法 详解与例题
A*搜索(A\* Search Algorithm),是一种在图形平面上,对于有多个节点的路径求出最低通过成本的算法。它属于图的遍历和最佳有限搜索算法,同时也是BFS算法的改进之一。原创 2021-05-25 22:18:51 · 5992 阅读 · 2 评论 -
拯救公主 计蒜客 BFS+二进制状压
Problem Description多灾多难的公主又被大魔王抓走啦!国王派遣了第一勇士蒜头君去拯救她。身为超级厉害的术士,同时也是蒜头君的好伙伴,你决定祝他一臂之力。你为蒜头君提供了一张大魔王根据地的地图,上面标记了蒜头君和公主所在的位置,以及一些不能够踏入的禁区。你还贴心地为蒜头君制造了一些传送门,通过一个传送门可以瞬间转移到任意一个传送门,当然蒜头君也可以选择不通过传送门瞬移。传送门的位置也被标记在了地图上。此外,你还查探到公主所在的地方被设下了结界,需要集齐 K(0≤K≤5) 种宝石才能打开。当然原创 2021-04-04 11:52:50 · 401 阅读 · 0 评论 -
图论02.最小生成树_学习笔记+模板 - 副本
一、定义与性质● 需要的前导知识点生成子图生成树● 性质我们定义无向连通图的 最小生成树 (Minimum Spanning Tree,MST)为边权和最小的生成树。注意:只有连通图才有生成树,而对于非连通图,只存在生成森林。二、最小生成树算法与模板1.Kruskal 算法Kruskal算法是一种常见而且好写的最小生成树算法,本质属于贪心算法;基本思想:从小到大加入边适用于稀松图,稠密图应该用Prim算法需要前导知识:并查集、贪心算法、图的储存方式如果使用 O(mlogm)原创 2021-02-28 16:09:39 · 282 阅读 · 0 评论 -
图论01.最短路专题_学习笔记+模板
图论01.最短路专题_学习笔记+模板一、定义与性质● 需要的前导知识点路径最短路有向图中的最短路、无向图中的最短路单源最短路、每对结点之间的最短路● 最短路的性质对于边权为正的图,任意两个结点之间的最短路,不会经过重复的结点。对于边权为正的图,任意两个结点之间的最短路,不会经过重复的边。对于边权为正的图,任意两个结点之间的最短路,任意一条的结点数不会超过 nnn ,边数不会超过 n−1n-1n−1 。二、最短路算法与模板1.Floyd–适用于无负环图的最短路算法用于求解图中任原创 2021-02-24 20:21:44 · 1937 阅读 · 0 评论 -
Good Subarrays 前缀和+map优化 题解
题目描述Problem DescriptionYou are given an array a1,a2,…,ana_1,a_2,…,a_na1,a2,…,an consisting of integers from 000 to 999. A subarray$ a_l,a_{l+1},a_{l+2},…,a_{r−1},ar$ is good if the sum of elements of this subarray is equal to the length of this subarr原创 2021-02-13 11:51:47 · 218 阅读 · 1 评论 -
Minimum’s Revenge
题目描述Problem DescriptionThere is a graph of n vertices which are indexed from 1 to n. For any pair of different vertices, the weight of the edge between them is the least common multiple of their indexes.Mr. Frog is wondering about the total weight of th原创 2021-02-13 11:50:52 · 141 阅读 · 0 评论