摘要: \(\text{Problem}:\)[JOI 2020 Final] スタンプラリー 3 \(\text{Solution}:\) 显然,移动方式形如:顺时针走到某个端点,再逆时针走到某个端点 \(...\) 特别的,我们设起始点是原点,则每次改变走的方向都会经过原点。 那么我们破环为链,记逆时针 阅读全文
posted @ 2021-02-22 16:45 zkdxl 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 线段树分治,是一种离线后在时间轴上用线段树维护区间操作,并可以进行撤销的思想。 ##二分图 /【模板】线段树分治 \(\text{Solution}:\) 二分图的充要条件是不存在奇环,可以用扩展域并查集维护。把 \([l,r]\) 区间内的边分为 \(\log\) 段挂在线段树的对应节点上,遍历到 阅读全文
posted @ 2021-02-22 15:36 zkdxl 阅读(102) 评论(0) 推荐(0) 编辑
摘要: \(\text{Problem}:\)题目链接 \(\text{Solution}:\) \(bitset\) 优化莫队。现在考虑的是三个区间有多少个数相同,而用 \(bitset\) 可以快速求出三个区间有多少种数相同。 发现可以离散化,但是不能去重,这样我们用 \(lower\)_\(bound 阅读全文
posted @ 2021-02-22 15:25 zkdxl 阅读(45) 评论(1) 推荐(1) 编辑
摘要: \(Graham\) 求凸包: 找到 \(y\) 最小的点,将其他点按照极角排序。如果三点共线的话,优先连最远的点。每次比较栈顶两个点组成的向量,和栈顶点与新加入点组成的向量的叉积,只有叉积 \(>0\),说明在新向量在栈顶向量的逆时针方向时,才满足条件。 \(\text{Code}:\) #inc 阅读全文
posted @ 2021-02-22 14:52 zkdxl 阅读(68) 评论(1) 推荐(1) 编辑
摘要: 考虑把并查集放到主席树上维护,达到可以查询过去版本的目的。 由于并查集时间复杂度是基于均摊分析的,所以不能路径压缩。此处可以使用按秩合并或者启发式合并。 所以我们在主席树上维护 \(dep\) 和 \(fa\),表示这个节点的深度和父亲(这里的节点指的是主席树上的节点,父亲指的是这个节点对应实际节点 阅读全文
posted @ 2021-02-22 14:29 zkdxl 阅读(53) 评论(1) 推荐(1) 编辑
摘要: \(\text{Problem}:\)Axel and Marston in Bitland \(\text{Solution}:\) 记一条路径是好的,即:它的长度为 \(2^{k}\),且这段路径可以通过翻转(即将 \(P\) 变成 \(B\),\(B\) 变成 \(P\))如果是答案,它是合法 阅读全文
posted @ 2021-02-22 14:03 zkdxl 阅读(70) 评论(1) 推荐(1) 编辑
摘要: \(\text{Problem}:\)Underground Lab \(\text{Solution}:\) 观察到 \(\lceil \frac{2n}{k} \rceil \times k \geq 2n\),而我们对于一个无向连通图进行 \(DFS\),将第一次遍历和回溯到的点都加入路径中, 阅读全文
posted @ 2021-02-22 14:02 zkdxl 阅读(52) 评论(1) 推荐(1) 编辑