摘要: 2321 sb 题,质因数分解后对于指数讨论即可。 2324 考场想到了但是树上 \(k\) 级祖先写挂了。/kk 对于一组询问 \((x,y)\),可以分成两种情况:有祖系关系与否。 考虑如何统计答案。 维护 \(dp_x,up_x\) 表示子树内/外的点到点 \(x\) 的路径权值之和。 对于第 阅读全文
posted @ 2024-10-09 15:49 endswitch 阅读(15) 评论(0) 推荐(0)
摘要: 入门 例题 [ABC329F] Colored Ball。 题意 给定 \(N\) 个盒子,每个盒子里面有一个颜色为 \(C_i\) 的小球。有 \(Q\) 次操作,每次操作将第 \(a_i\) 个盒子中的球都放到第 \(b_i\) 个盒子里面,你需要在每次操作后输出当前操作结束后第 \(b_i\) 阅读全文
posted @ 2024-10-08 14:08 endswitch 阅读(35) 评论(0) 推荐(0)
摘要: 图灵测试未通过,鉴定为人机。 1540 满足分治性质,放 sort 里面即可。 cmp 函数可以这么写: inline bool cmp(string a, string b) { return a + b < b + a; } 75 没见过的 trick。 题目要求的是最长回文子序列,实质上就是正 阅读全文
posted @ 2024-10-07 14:24 endswitch 阅读(14) 评论(0) 推荐(0)
摘要: 定义 是指将一棵树划分成若干条链。常见的剖分方式有长链剖分、重链剖分、实链剖分。 重链剖分 从轻重儿子的角度将树划分成多条“重链”,进而将重链转换成区间问题解决。 步骤 dfs 预处理一棵树的深度、父节点、子树大小、重儿子(\(dep, fa, sz, son\))。 对于每个轻儿子,再次 dfs, 阅读全文
posted @ 2024-09-09 21:34 endswitch 阅读(30) 评论(0) 推荐(0)
摘要: 动态开点 当正常堆式建树开不下时(\(n\) 或 \(V\) 过大),通常使用动态开点。 例题 P2781 传教 算是很板了吧? 每次修改的时候,若当前访问节点未建立则新建节点并回溯至上一个节点记录左右儿子。实测写 & 引用或 struct 是很方便的。 要十分注意的是在 work 函数(单点修改 阅读全文
posted @ 2024-09-06 22:32 endswitch 阅读(73) 评论(0) 推荐(0)
摘要: 并查集 普通并查集 路径压缩写法: struct Union_Find_Set { int f[N]; inline void init() { for(int i = 1 ; i <= n ; ++ i) f[i] = i; } inline int find(int x) { if(x != f 阅读全文
posted @ 2024-09-04 23:14 endswitch 阅读(19) 评论(0) 推荐(0)
摘要: 问题模型 给定 \(a,b\) 两个长度为 \(n\) 的序列,求下列式子最大值: \[\frac{\sum_{i = 1} ^ {n} a_i · x_i}{\sum_{i = 1} ^ {n} b_i · x_i} \]其中 \(\forall i \in [1, n], x_i \in \le 阅读全文
posted @ 2024-09-02 22:50 endswitch 阅读(18) 评论(0) 推荐(0)
摘要: 前言 引用一句刘邦的话:“有时 01 Trie 胜于 01 Trie。” 正文 前景提要 Trie(串串咕了 qwq)。 位运算。 贪心。 01 trie 简介 实质上是字符集只有 \(\left \{ 0,1 \right \}\) 的 trie。 由于每一个自然数一定可以进行二进制拆分,所以一个 阅读全文
posted @ 2024-08-23 16:33 endswitch 阅读(34) 评论(0) 推荐(0)
摘要: 看了很多题目,个人觉得现阶段以考察矩阵乘法(快速幂)、高斯消元法求线性方程组的解、矩阵优化 dp、一些 trick(线段树维护矩阵,kmp 套矩阵等)以及矩阵自身性质的深层次运用为主。 P1962 斐波那契数列 应该是典题。从这道题我们可以发现矩阵优化 dp 的最有效办法是手模,所以此类题目一般考察 阅读全文
posted @ 2024-08-23 11:55 endswitch 阅读(18) 评论(0) 推荐(0)
摘要: 树的直径 模板题。 定义 树的任意两点之间的最长简单路径。 求法 dfs 做法 从任意一个节点 dfs 到和其距离最远的节点,可以证明其为树的直径的一端。然后再以直径的一端 dfs 走到和其距离最远的节点即可得出答案。 若要记录直径路径的话只需在第二次 dfs 上记录每个节点的前驱即可。 inlin 阅读全文
posted @ 2024-08-23 11:54 endswitch 阅读(66) 评论(0) 推荐(0)