![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
文章平均质量分 58
ssl_lkx
!
展开
-
jzoj3237 间谍派遣
【最小生成树】jzoj3237间谍派遣原创 2022-07-20 20:12:10 · 64 阅读 · 0 评论 -
最小生成树
题目大意链接普通的最小生成树,给出nnn个农场,求最短需要多长的光纤才能连接所有的农场。解题思路既然是最普通的最小生成树,那么就需要了解两种算法。prim算法prim算法采用的是蓝白点思想,把已进入最小生成树的点标为白点,未进入的标为蓝点,具体如下的例子。如图,初始时所有点都未加入最小生成树,min1=0,min[2,3,4,5]=∞。minmin_1=0,min[2,3,4,5]=∞。minmin1=0,min[2,3,4,5]=∞。min表示每个店离白点的最短距离,设初始点1为白点。原创 2021-12-25 11:42:06 · 338 阅读 · 0 评论 -
luogu P2502 [HAOI2006]旅行
题目大意题目链接有nnn个点mmm条路,第aia_iai路行驶速度必须为wiw_iwi,现要从点sss去点ttt,求最快速度和最慢速度的比最小为多少(必要时化成最简分数)。如果无法从点sss到点ttt,输出IMPOSSIBLE。解题思路看到用路线联通两个点,就想到了可以用并查集做。因为要求最小的比为多少,所以我们肯定希望最大速度和最小速度接近,因此我们可以先按速度排一遍序。我们排好序后,最快速度肯定出现在最慢速度的后面,因此我们只需要从第111条路枚举到第mmm条路,再从当前枚举的路线iii向后原创 2021-12-18 16:50:28 · 100 阅读 · 0 评论 -
51nod 1416两点
题目描述给你一个n∗m(1≤n,m≤50)n*m(1\le n,m\le50)n∗m(1≤n,m≤50)的矩阵,用不同的大写字母来表示不同的颜色,找出一个只包含一种颜色的环。例如这张图片中的4个蓝点就构成了一个环。解题思路dfs思路对于这种要往四周找的题,我们可以用dfs做,从某个点开始向四周dfs,不能后退,如果能够再次顺着相同颜色回到这个点,那么就表示有能走回来的路,也就是有一个环。dfs代码#include<bits/stdc++.h>using namespace st原创 2021-12-18 15:36:59 · 74 阅读 · 0 评论 -
luogu P1111 修复公路
目录题目大意解题思路代码题目大意传送门解题思路这题就是求出所有村庄都连通时,最小的t是多少。一看,并查集加排序,输入两个村庄,再按t排序,遍历一遍,如果没有连通就就把它们俩连起来,并减少未连通的村庄数量,当所有村庄都连通了,就输出t。代码#include<bits/stdc++.h>using namespace std;int p[100010],n,m,ans=-1;struct ap{ int x,y,t;}a[100010];bool cmp(ap x,ap原创 2021-10-15 19:33:19 · 93 阅读 · 0 评论