
并查集
秋天俯身采种子
我在想,飞蛾扑火时一定是极快乐幸福的。
展开
-
ARC107——C - Shuffle Permutation
C - Shuffle Permutation这几天遇到了很多(2道)并查集维护连通关系的题。此题把能够相互交换的行或者列用并查集维护,不难发现一个连通块内的点个数时cntcntcnt连通块内的行或者列可以两两交换,那么对答案的贡献是cnt!cnt!cnt!因此预处理,然后用并查集维护连通关系即可。#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)#pragma GCC optimize(2)#include<set>原创 2020-11-06 19:18:22 · 231 阅读 · 1 评论 -
ABC181——F - Silver Woods
现在时间太少了,只能把自己不会的题补一下,会的题就不写了F - Silver Woods显然可以二分圆的半径,那么现在问题转化成判断半径为rrr的圆是否能够满足题意。考虑什么情况下该半径的圆不能通过这些点。尝试用并查集维护一些关系如果两个点直接的距离<2r<2r<2r那么说明该圆从两者之间通过,那么我们在他们两点之间连一条边。最后维护完并查集不难发现该圆不能完全通过这些并查集连通块的点。如果该题只能从两点之间通过,那么想要满足题意上述连通块的个数必须=n=n=n不过该题可以让原创 2020-11-05 11:14:02 · 302 阅读 · 0 评论