摘要: 原题链接 题解 1.暴力想法:维护n个集合,每次合并,遍历两个集合,最坏时间复杂度 \(O(q\cdot n\cdot \log n)\) 2.优化想法:两个集合合并后,我们只需要查询大集合的大小,因此,我们可以只遍历两个集合中较小的那个 然后莫名发现竟然过了,我们上网查了一下,发现这种方法叫做启发 阅读全文
posted @ 2024-08-13 21:25 纯粹的 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 根据哥德巴赫猜想,任意大于2的偶数都可以表示为两个质数的和 因此,对于大于二的偶数,总有办法拆成两个质数,也就是只需要交两元钱 如果是质数,只用交一元钱 如果一个数减二后是质数,也只需要交两元 否则交三元 code #include<bits/stdc++.h> using name 阅读全文
posted @ 2024-08-13 20:38 纯粹的 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 如果在升区间内包裹降区间,那么这个降区间是不合法的 如果两个升区间有重叠,那么这两个升区间将合并成一个大的升区间 这种合并的操作让我们想到了并查集,我们用并查集维护升区间,如果一个降区间内的点不属于一个集合,代表不存在一个升区间包裹了这个降区间 yes or no的问题解决了,如何构 阅读全文
posted @ 2024-08-13 00:26 纯粹的 阅读(11) 评论(0) 推荐(0) 编辑