![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
everlasting__
'-'
展开
-
bzoj 1083: [SCOI2005]繁忙的都市 并查集
→题目链接← 使n个点联通显然的是n-1条边 将边以长度从小到大排序,如果目前的边的两端点不在同一集合中,就选择这个边,这显然是最优的 代码: #include #include #include using namespace std; struct edge{ int s,t,len; friend bool operator < (edge a,edge b)原创 2017-08-19 10:32:39 · 246 阅读 · 0 评论 -
bzoj 3397: [Usaco2009 Feb]Surround the Islands 环岛篱笆
→题目链接← 令人一看样例就不想做的题... 题面说的很麻烦..但是仔细想一想就是问一个点到其它点距离的和的最小值 用并查集将岛屿处理出来 将每个岛屿看作一个点 然后一边输入就能一边处理出岛屿间的距离 最后暴力求和取min就好 代码: #include #include #define inf 233333333 using namespace std; in原创 2017-09-04 09:11:49 · 353 阅读 · 0 评论 -
bzoj 3362: [Usaco2004 Feb]Navigation Nightmare 导航噩梦 带权并查集
→题目链接← 【想说的话】 一道带权并查集好(水)题 以前觉得带权并查集挺屌的... 但是写过才发现就是正常的并查集顺便维护点什么东西... 好像我写的有点暴力啊...跑的好慢啊 【题解】 做并查集的过程中找根时不做路径压缩 然后对于每个点保存它到它的父亲节点需要在x轴和y轴上移动多少 每次合并x、y时找到y的根并记录从y移动到跟需要在x轴和y轴上移动多少 然后原创 2017-10-10 21:38:36 · 328 阅读 · 1 评论