摘要: Tarjan 强连通分量 找到有向图强连通分量,也就是对于每个点找到和它构成环的所有点。 我们只要在 dfs 的过程中维护一个栈 \(s\),保存的是 \(x\) 的祖先节点 \(anc(x)\) 和那些已经访问过的存在一条路径到 \(anc(x)\) 的节点。这个第二类的点的由来就是假设目前在 \ 阅读全文
posted @ 2024-11-23 15:11 Mirasycle 阅读(106) 评论(1) 推荐(0)
摘要: Prufer 序列 基础知识 一个 \(n\) 个节点的唯一对应着一串长为 \(n-2\) 的序列,因此一个 \(n\) 阶完全图的有标号生成树个数为 \(n^{n-2}\)。 无根树转 prufer: 不断将无根树中编号最小的叶子节点删除,并将与之相连的节点放入序列中,直到只剩 \(2\) 个节点 阅读全文
posted @ 2024-11-23 12:36 Mirasycle 阅读(51) 评论(1) 推荐(1)
摘要: 点分治 应用: 树上所有路径统计 树上每个节点做根,信息统计。 注意:需要在求出重心后重新统计子树大小,别写假了。 还有就是一般点分治用于子树内 \(O(size)\) 信息的合并,如果子树内只贡献 \(O(1)\) 个信息,那么可以直接将信息放到状态中作树形 dp。参考 P2634 [国家集训队] 阅读全文
posted @ 2024-11-23 12:35 Mirasycle 阅读(36) 评论(0) 推荐(1)
摘要: 基础知识 数论函数类别 下面列举一些常见数论函数。 单位函数 \(\epsilon(n)=[n=1]\) 常数函数 \(1(n)=1\) 恒等函数 \(\mathrm{id}_k(n) = n ^ k\) 除数函数 \(\sigma_k(n) = \sum\limits_{d\mid n}d ^ k 阅读全文
posted @ 2024-11-07 12:24 Mirasycle 阅读(61) 评论(0) 推荐(0)
摘要: 反悔贪心 可以看成对于一个错误贪心的修正,使得可以带着反悔/撤回选项。 一般是由两个部分构成,直接选择 \(+\) 反悔。需要对于两个策略都进行设计。 P3620 [APIO/CTSC2007] 数据备份 我们可以发现对于某一位置 \(i\) 来说,如果 \(d_i<\{d_{i-1},d_{i+1 阅读全文
posted @ 2024-09-28 10:06 Mirasycle 阅读(40) 评论(0) 推荐(0)
摘要: CF1672E notepad.exe 询问的是宽度,而宽带范围太大我们无法直接枚举宽度找到最小行数。 于是暴力就是枚举所有可能的行数此时对应的 \(w\) 是在一个区间内的,二分一下 \(w\) 进行询问看看返回值是不是当前枚举的行,这样子的复杂度是 \(O(n\log n)\) 的。 观察数据规 阅读全文
posted @ 2024-08-05 09:26 Mirasycle 阅读(39) 评论(0) 推荐(0)
摘要: LOJ6222. 幂数 !(加强版) 如何高效刻画某个数质因子次数均 \(\ge 2\)?发现我们会做不含平方因子,可以用莫比乌斯函数刻画。于是考虑将问题转化为不含平方因子。下面提出一种表示方法。 Powerful number 的表示方法:\(n=a^2b^3\),其中 \(b\) 不含平方因子。 阅读全文
posted @ 2024-08-04 09:51 Mirasycle 阅读(20) 评论(0) 推荐(0)
摘要: CF808E Selling Souvenirs 加强 \(n\) 个物品的背包,\(V_i\in[1,4]\),\(w_i\le 10^9\),\(n\le 10^5\)。 基于值域枚举后进行贪心 观察到 \(\operatorname{lcm}(1,2,3,4)=12\),于是我们可以将重量为 阅读全文
posted @ 2024-08-03 11:07 Mirasycle 阅读(68) 评论(1) 推荐(0)
摘要: P4099 [HEOI2013] SAO 如果全部都是 \(<\) 的话很好办,那就是外向树拓扑序个数,为 \(\dfrac{n!}{\prod size_u}\)。 现在我们多了内向边,于是需要把他们容斥掉。假设钦定了 \(c\) 条符号为 \(>\) 的边不满足性质(变成了 \(<\) 号的边) 阅读全文
posted @ 2024-08-02 11:14 Mirasycle 阅读(160) 评论(0) 推荐(2)
摘要: 后缀树 本质就是对于所有后缀建立 Trie 之后,提取所有关键点建立压缩 Trie,也就是所有尾节点为关键点的虚树。这样子树的大小是 \(O(n)\) 的。当然这只是一个理解,实际肯定不是按照上述方法建立的,不然第一步就爆了,其实直接建立 SAM 就可以得到后缀树了。 后缀树上两个串的最长公共前缀是 阅读全文
posted @ 2024-08-01 10:37 Mirasycle 阅读(81) 评论(0) 推荐(0)