do_while_true

一言(ヒトコト)

02 2022 档案

摘要:std::deque 的访问元素竟然是 \(\mathcal{O}(1)\) 的,在 UOJ 群被 142857cs 教育了,于是来总结一下这个东西。 两种手写支持 \(\mathcal{O}(1)\) 访问元素的双端队列的方法: 如果双端队列大小固定:可以用数组很简单的模拟来支持 \(\mathc 阅读全文
posted @ 2022-02-16 17:29 do_while_true 阅读(110) 评论(1) 推荐(0) 编辑
摘要:每次区间染色,会删除若干个颜色段,添加 $\mathcal{O}(1)$ 个颜色段。因此颜色段总数是 $\mathcal{O}(n+q)$. 采用平衡树(用 set 即可)维护极长连续颜色段,维护每个颜色增加值大小的 $tag$,并用树状数组维护每个点的答案减去对应颜色的 $tag$ 值。 Add: 阅读全文
posted @ 2022-02-16 15:09 do_while_true 阅读(144) 评论(0) 推荐(0) 编辑
摘要:对 qwaszx 博客 的抄写。 半群信息可以简单理解为有结合律的信息。比方说 \(\gcd,\min,\max,+,\times\) 之类的。 这一部分的东西在 OI 中没什么用,就当学个乐吧() 猫树 和 Sqrt Tree 可能有些用。 朴素做法 \(\Theta(n^2)\) 预处理所有区间 阅读全文
posted @ 2022-02-14 21:28 do_while_true 阅读(743) 评论(0) 推荐(0) 编辑
摘要:突然想起来这个题,作为总结写个题解。 考虑这个问题比区间数颜色强很多,那么要不然就离线,要不然在线考虑非 polylog 的做法。 颜色数信息比较难合并,考虑用 bitset 来记录颜色,合并就是 bitset 的按位或。 在线做法:四毛子,分成 \(w\) 个块以及它们的颜色 bitset,然后用 阅读全文
posted @ 2022-02-12 08:22 do_while_true 阅读(213) 评论(0) 推荐(0) 编辑
摘要:按秩合并来保证复杂度正确。 每次合并的时候记录一下是是怎么连边的,撤销的时候断开这条边就行了。 struct DSU{ int n,f[N],siz[N]; int stk[N],top; void init(int x){n=x;for(int i=1;i<=x;i++)f[i]=i,siz[i] 阅读全文
posted @ 2022-02-09 19:39 do_while_true 阅读(79) 评论(0) 推荐(0) 编辑
摘要:\(n\leq 2^{64}\) 即正确。 #include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<bitset> #define pb emplace_back #define mp std 阅读全文
posted @ 2022-02-07 22:03 do_while_true 阅读(42) 评论(0) 推荐(0) 编辑
摘要:又在抄 oi-wiki... 求 \[ \phi(n)=\sum_i^n \varphi(i) \] 利用 \(id=\varphi * 1\): \[ \begin{aligned} \frac{1}{2}n(n+1)&=\sum_k^n k \\ &=\sum_k^n\sum_{d|k}\var 阅读全文
posted @ 2022-02-07 08:21 do_while_true 阅读(46) 评论(0) 推荐(1) 编辑