do_while_true

一言(ヒトコト)

上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 30 下一页
摘要: 每次区间染色,会删除若干个颜色段,添加 $\mathcal{O}(1)$ 个颜色段。因此颜色段总数是 $\mathcal{O}(n+q)$. 采用平衡树(用 set 即可)维护极长连续颜色段,维护每个颜色增加值大小的 $tag$,并用树状数组维护每个点的答案减去对应颜色的 $tag$ 值。 Add: 阅读全文
posted @ 2022-02-16 15:09 do_while_true 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 对 qwaszx 博客 的抄写。 半群信息可以简单理解为有结合律的信息。比方说 \(\gcd,\min,\max,+,\times\) 之类的。 这一部分的东西在 OI 中没什么用,就当学个乐吧() 猫树 和 Sqrt Tree 可能有些用。 朴素做法 \(\Theta(n^2)\) 预处理所有区间 阅读全文
posted @ 2022-02-14 21:28 do_while_true 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 突然想起来这个题,作为总结写个题解。 考虑这个问题比区间数颜色强很多,那么要不然就离线,要不然在线考虑非 polylog 的做法。 颜色数信息比较难合并,考虑用 bitset 来记录颜色,合并就是 bitset 的按位或。 在线做法:四毛子,分成 \(w\) 个块以及它们的颜色 bitset,然后用 阅读全文
posted @ 2022-02-12 08:22 do_while_true 阅读(207) 评论(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 阅读(44) 评论(0) 推荐(1) 编辑
摘要: 各类根号算法。不太适合当作复习所用,就当写个教程了,可能因为这个东西不大需要复习( 阅读全文
posted @ 2022-01-28 07:41 do_while_true 阅读(467) 评论(0) 推荐(1) 编辑
摘要: 不排除写挂了的可能性,挂了再来改。 namespace Bitset{ int bslen; ull mip[65]; struct Bs{ ull bit[N/64+5]; Bs(){memset(bit,0,sizeof(bit));} void init(int n){bslen=n/64+2 阅读全文
posted @ 2022-01-26 19:37 do_while_true 阅读(301) 评论(1) 推荐(1) 编辑
摘要: 感觉比 Tarjan 好写多了!虽然正确性可能不如 Tarjan 好理解。 先求出 dfs 树,然后按照出栈序倒序在反图上 dfs,每次 dfs 所有能走到的点都构成了一个强连通分量,然后将它们在图上删去。 代码(来自 oi-wiki) 时间复杂度 \(\mathcal{O}(|V|+|E|)\). 阅读全文
posted @ 2022-01-26 19:14 do_while_true 阅读(36) 评论(1) 推荐(1) 编辑
摘要: 要取的话一定是全取完,如果没取完一个数组 \(x\) 就去取另外一个数组 \(y\) 更优的话,那么把取 \(x\) 的机会用到取 \(y\) 上会更优,这样就变成取完 \(y\) 再取 \(x\),依然满足结论。 那就变成选出一些数组,把它们全取了,然后再在一个数组里面选一个前缀。 那就把数组看成 阅读全文
posted @ 2022-01-24 11:22 do_while_true 阅读(42) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 30 下一页