CSP-S2 复习计划 知识点: DP 能力提升综合题单Part4 动态规划1 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 倍增 【算法2-3】分治与倍增 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 分治 【算法2-3】分治与倍增 - 题单 - 洛谷 | 计算机科学教育新生态 (luo…
AT_abc169_d [ABC169D] Div Game 看到题解里面好像没有用二分写的,我这个蒟蒻就写一个了。 题意 题目翻译写得很清楚了,我就不多写了。 思路 先把给定的 $N$ 分解质因数,得出: $$N = a_1^{p_1} \times a_2^{p_2} \times a_3^{p_3} \times \dots \times a…
线段树 II 之 懒惰标记 前置知识:线段树 I – ztr 的小窝 (ztrztr.top) 懒惰标志 Lazy Tag 懒惰标志,是维持线段树的区间修改查询的复杂度在 $O(\log n)$ 级别的一个方法。 正常的区间修改查询的复杂度可以说是 $O(n)$ 级别的,因为每次修改一个,需要一直传到叶子节点为止。 但是我们发现,如果这样的话,修改…
P10877 「KDOI-07」n1gr tS0i 个人认为这道题没有黄的难度。 思路 我先看了 $n=30$ 的样例,有一个猜想是答案是 $2^n$,然后用计算器算了一下 $n=30$ 的这个数据发现猜想是对的。 但是如果 $n=2$ 的情况发现不是这样的,所以又猜测只有当 $n$ 大于一个界限的时候才是 $2^n$。 首先,$n = 2$ 的情…
01-Trie 如果不理解 Trie 树的可以看我的之前的文章 Trie 树 – ztr 的小窝 (ztrztr.top)。 01 Trie 树,是运用 Trie 的思想储存一些数,从而实现省空间。 实现 01 Trie 树,是把原本是字符串中的都换成了一个数的二进制串。 对于添加数的操作,我们把数按二进制把二进制中的每一位拆分,然后按 Tri…
P2607 [ZJOI2008] 骑士 难度:紫(省选/NOI−)。 知识点:图论,树形 DP,DFS。 知识点难度(知识点模板题):绿。 代码长度:中偏短($52$ 行) 代码难度:较低。 思路 这道题是采用树形 DP 的《没有上司的舞会》的模板的,状态定义为: $dp[i][0]$ 是以 $i$ 为根的子树不选择这个节点的最大答案。 同理,$d…
P10801 题目大意 给一个字符串,求通过改变最多 $k$ 个字符后最小化这个字符串的严格循环节的长度。 思路 从题目,我们能初步分析出一下几点: 答案肯定是字符串长度的因子; 由于随着答案的减小,需要操作的次数会增加,那么我们就能想到二分。 我们可以先统计字符串长度的每个因子,然后存到数组里面。 然后二分这个数组,找到最小符合条件的答案。 二分…
Trie 树 Trie 树是一种可以快速查找一个字符串是不是在目前集合中的一个数据结构。 Trie 树的中文名是字典树,顾名思义,这个数据结构就是一个长得像字典的树。 思路 上面这个图就是一个 Trie 树,这种树是一个有根树。这种数据结构中,我们不再把每个字符串完全分开存储,而是把相同的合并了。 插入 我们从根节点开始,检查根节点的边有没有…
题目大意 有一个图,依次删去一些点后有多少个连通块。 思路 一道并查集 + 离线 的题目。 这道题第一眼肯定是想如何维护可以删除节点的并查集,但是这样不太可做。(或许是我太菜了。)但是我们发现他只有一个删除的操作,没有增加的操作,那么就可以想到离线计算。 离线计算,也就是把原本是读入后立马运算的操作都存起来,再算。 这样的好处就是我们可以按操作倒着…
CSP 初赛笔记,持续更新中。 出栈序列 出栈序列满足 FILO 的规则,也就是先进后出。 如果入栈的顺序是降序排列,那么可以快速判断的依据就是任意数A的后面比A大的数都是按照升序排列的 如果入栈的顺序是升序排列,那么可以快速判断的依据就是任意数A的后面比A小的数都是按照降序排列的 哈夫曼编码 哈夫曼编码详解——图解真能看了秒懂_已知字符集abcd…