P8094 USACO22JAN Cow Frisbee S 题目概括 给定一个数组,求所有 $1 \leq i \leq j \leq n$,且对于所有 $i \leq k \leq j$,都满足 $a[i] \geq a[k] \cap a[j] \geq a[k]$ 的有序数对 $(i, j)$ 的长度($j - i + 1$)。 算法 &a…
题目概括 在一个字符串前插入若干个指定字符:l、q、b,使得这个字符串成为一个回文字符串。 算法 & 数据结构 & 思想 洛谷标签:模拟 主要是了解回文串的特点,和题目中只能在字符串前面添加字符这个特点。 错误点 注意在 check 函数中,访问字符串中的位置的时候一定要判断有没有超出字符串长度或者小于 0。 思路 80 分(TLE…
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 树,这种树是一个有根树。这种数据结构中,我们不再把每个字符串完全分开存储,而是把相同的合并了。 插入 我们从根节点开始,检查根节点的边有没有…