![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
stargazer.
夜を穿つの
展开
-
【LOJ #3285】「USACO 2020 US Open Platinum」Circus(并查集)
传送门参照xyxxyxxyx的题解做法考虑计算等价类的大小显然每个等价类大小一样那么答案就是k!siz\frac{k!}{siz}sizk!考虑一条链上不能交换而对于链的两端,设子树大小分别为a,ba,ba,b那么两端子树可以交换必须要k<a+b−2k<a+b-2k<a+b−2如果得到了每个可以交换的集合大小ssssizesizesize就是∏s!\prod ...原创 2020-04-21 22:13:40 · 490 阅读 · 0 评论 -
【Codeforces 571 D】 Campus(并查集 / dfs序 / 树状数组 )
传送门考虑这样的操作连出一颗森林于是先离线建出树来修改就是子树操作只需要对于每个询问找到该点上一个被覆成000的时间然后对时间区间询问即可复杂度O(nlogn)O(nlogn)O(nlogn)写的有点长,似乎有2k2k2k不到写完的(#include<bits/stdc++.h>using namespace std;#define cs const#define...原创 2020-04-11 00:05:43 · 297 阅读 · 0 评论 -
【LOJ #2391】「JOISC 2017 Day 1」港口设施(二分图染色 / 并查集)
传送门显然可以看成把有交叉的船之间连边跑二分图染色但是边数是O(n2)O(n^2)O(n2)的,考虑优化考虑按时间轴从小到大枚举对于当前时间如果是船iii的BiB_iBi即向左端点在(Ai,Bi)(A_i,B_i)(Ai,Bi)且还没枚举过右端点的船连边这样复杂度是O(∣E∣)O(|E|)O(∣E∣)的考虑进一步优化可以发现如果存在两个点分别向[a,b],[c,d][a,b...原创 2020-02-28 19:14:10 · 888 阅读 · 1 评论 -
【LOJ #2865】「IOI2018」狼人(Kruscal重构树+扫描线)
传送门一道披着交互题外衣的传统题题意就是在问从SSS出发,走编号[L,n][L,n][L,n]内能达的点和EEE出发,走编号[1,R][1,R][1,R]能达的点是否有交显然可以把两点最大/小值作为边权建两颗KruscalKruscalKruscal重构树倍增后就是在问两个子树是否有相同的叶子转到dfsdfsdfs序上就是对于2个排列[L1,R1],[L2,R2][L_1,R_1...原创 2019-12-18 21:40:35 · 201 阅读 · 0 评论 -
【LOJ#3197】【eJOI2019】—T 形覆盖(并查集)
传送门考虑2个关键点之间的关系如果挨在一起,那么周围选的6个是确定的如果角挨在一起,那么周围选的6个也是确定的如果隔了一个格子,那么就是在周围7个里面去掉最小的一个维护相关联的一堆关键点看周围能填的格子数是否足够#include<bits/stdc++.h>using namespace std;const int RLEN=(1<<20)|5;inli...原创 2019-10-19 00:04:18 · 283 阅读 · 0 评论 -
【2019省选模拟】—树(并查集+容斥)
先不考虑修改考虑直接不好求,改成求gcdgcdgcd不为1的个数容斥一下就是一个质数时联通的点对个数-2个质数的积时联通的点的个数+3个质数积联通的点的个数……发现实际上就是μ\muμ联通的点的个数实际上很好求,用并查集维护一下,mergemergemerge的时候加一个sizsizsiz的积就可以了但每次不能直接重置,用一个指针维护一下回收被修改的sizsizsiz和fafafa,并查...原创 2019-03-30 19:07:48 · 154 阅读 · 0 评论 -
【BZOJ4025】—二分图(线段树分治+带权并查集)
传送门原创 2019-08-30 21:35:04 · 182 阅读 · 0 评论