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