
【算法】最小生成树
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【AtCoder】AtCoder Regular Contest 093 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】Traveling Plan【思路要点】删除一个点本质上只改变了\(O(1)\)对相邻关系,在总和的基础上调整即可。时间复杂度\(O(N)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;template <typename...原创 2018-06-13 20:58:43 · 470 阅读 · 0 评论 -
【BZOJ2561】最小生成树
【题目链接】 点击打开链接 【思路要点】 比较显然的最小割,即删去最少的边,使得xxx和yyy通过小于和大于给定边边权的边都不连通。 时间复杂度O(Dinic(N,M))O(Dinic(N,M))O(Dinic(N,M))。 【代码】 #include<bits/stdc++.h>using namespace std;...原创 2018-07-04 20:48:52 · 360 阅读 · 0 评论 -
【BZOJ2521】【SHOI2010】最小生成树
【题目链接】 点击打开链接 【思路要点】 题目中的操作等价于对一条边权值加一。 问题转化为了,每条边有一个删去的代价,花费最少的代价,使得xxx和yyy通过除给定边以外小于等于给定边边权的边不连通。 最小割即可。 时间复杂度O(Dinic(N,M))O(Dinic(N,M))O(Dinic(N,M))。 【代码】 #includ...原创 2018-07-04 20:55:20 · 211 阅读 · 0 评论 -
【CodeForces】CodeForces Round #504 (Div. 1 + Div. 2) 题解
【比赛链接】 点击打开连接 【题解链接】 点击打开链接 **【A】**Single Wildcard Pattern Matching 【思路要点】 判断 SSS 的星号前后是否为 TTT 中不相交的前缀和后缀。 时间复杂度 O(N+M)O(N+M) O(N+M) 。 【代码】 #include&amp;amp;lt;bi...原创 2018-09-07 21:34:59 · 344 阅读 · 0 评论 -
【LOJ2865】「IOI2018」狼人
【题目链接】 点击打开链接 【思路要点】 问题等价于从起点出发只经过 L,L+1,L+2,...,NL,L+1,L+2,...,NL,L+1,L+2,...,N 能够到达的点和终点出发只经过 1,2,3,...,R1,2,3,...,R1,2,3,...,R 能够到达的点是否有交。 建出原图的最小/最大生成树的 KruskalKruskalKruskal ...原创 2018-09-17 13:09:21 · 998 阅读 · 1 评论 -
【CodeForces】Mail.Ru Cup 2018 Round 1 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Elevator or Stairs?【思路要点】按照题意计算两种方式的用时,取较优的方案采纳。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5...原创 2018-10-21 14:28:31 · 929 阅读 · 1 评论 -
【校内训练2019-01-15】鸡
【思路要点】考虑快速模拟 KruskalKruskalKruskal 算法。具体来说,对于所有长度为 iii 的边,我们需要计算有多少条连接了两个由长度不足 iii 的边连成的不同联通块,并不会与其余长度为 iii 的边连接的联通块成环,记条数为 cnticnt_icnti ,则 Ans=∑i=0Mi∗cntiAns=\sum_{i=0}^{M}i*cnt_iAns=∑i=0Mi∗cn...原创 2019-01-15 18:04:26 · 320 阅读 · 0 评论