![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
a10.
这个作者很懒,什么都没留下…
展开
-
atcoder regular 111 B
题目可以把这题,每张牌的两个颜色看作图的两个端点(一个颜色一个端点),然后每次取一种颜色,其实就是每条边只能取一个结点,问最后最多能取几个结点。我们可以发现,只要图的连通块,存在一个环,那么这个连通块所有结点都能选上。树的话就只能取n-1个,因为每条边只能选一个结点吗。所以只需要找出所有连通块,对边数和结点数取min就可以了。#include<cstdio>#include<algorithm>#include<iostream>#include<cstr原创 2021-10-09 10:43:39 · 107 阅读 · 0 评论 -
atcoder beginner 214 E
题目这玩意居然还能用并查集来做。首先贪心的想,每个球我们能往左边放就往左边放,那么我们就能尽可能的腾出位置了。那我们怎么知道这个球所能放的最左边的位置呢,我们可以用并查集来维护。设fa[x]为x这个位置能不能放,不能放的话fa[x]将告诉你最左边能放的位置在哪。具体怎么维护看代码就可以了。#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include&l原创 2021-08-26 00:45:43 · 87 阅读 · 0 评论 -
2021年北京理工大学ACM CLUB清明节组队训练赛 G Generator Grid
题目思路很简单,玩玩两个样例大概就知道可以贪心+并查集了,一开始写复杂了,其实代码简单的一匹。#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<string>#include<sstream>#include<queue>#include<list>#include<bitset&原创 2021-04-29 17:31:36 · 191 阅读 · 0 评论 -
并查集题目
cf 766D题目转载 2020-12-19 14:28:50 · 137 阅读 · 1 评论 -
codeforces 659 div2 C
题目我们找一下规律可以发现,我们可以每一次都把最小可以变的变成当前要变的最小的,例如第一个样例,把两个a全部变成b,两个b变成c,这么做一定不会使答案更差。那我们可以用什么去维护呢?看了这个大佬的博客才知道可以用并查集维护:连接在同一个并查集内的元素,除了起始点以外,都是即将一步一步跳大的元素,所以对连通块里面元素格式求和就可以了。#include<cstdio>#include<algorithm>#include<cstring>#include<i原创 2020-07-27 19:29:10 · 78 阅读 · 0 评论 -
广州大学第十四届ACM大学生程序设计竞赛(同步赛)
题目A这题卡缓冲区,也是第一次见卡这东西,就是……getline被卡了,自己输入一下看一下会出现什么就知道了,可以用cin.ignore()解决,学到了。这题我做的比较复杂,更简单的做法就是直接if判断输出#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<sstream>#include<string>#inc原创 2020-07-27 16:27:15 · 261 阅读 · 0 评论