摘要:
前言 树状数组是我学的第一个高级数据结构,属于 级数据结构。 其实现在一般不会单独考察数据结构,主要是其在其他算法(如贪心,DP)中起到优化作用。 长文警告:本文一共 行,请合理安排阅读时间。 lowbit函数 lowbit函数用于求解一个数二进制位最右边的 \(1 阅读全文
摘要:
前言 WFLS 2023 寒假集训 Day4 Day 5 搜索剪枝的复杂度很玄学,最好还是能剪枝就剪枝,只要不是错误的,总没有坏处。 最优化剪枝 当题目要求求最优解的时候,此时如果已经求出一个可行解,那么答案超过这个可行解的分支一定不是最优解,所以这些分支可以剪掉。 找到可行解 if(check() 阅读全文
摘要:
前言 WFLS 2023 寒假集训 Day2 大纲里字典树在数据结构里,但是个人认为应该属于字符串,就把它放到字符串里了 字典树 字典树,又称Trie树,字母树。每个顶点代表一个字符,从根节点到叶子节点的路径上所有的节点的字符连接起来,就是一个字符串。 字典树的优点:利用串的公共前缀来节省内存,加快 阅读全文
摘要:
前言 WFLS 2023 寒假集训 Day1 KMP好闪,拜谢KMP! 暴力算法 单模字符串匹配算法 设 为主串 (文本串)指针, 为子串 (模式串)指针,最开始 都从 开始,如果 那么 \(i++\ 阅读全文
摘要:
前言 鸽了很久, 开始, 才完工。 中途去集训了,没时间来补漏洞。 单调队列 单调队列是一种非常实用的数据结构,可以用于查询一个定长区间在以一定速度向后滑动,并查询区间内最值的问题(具体见例题 )。时间复杂度非常低,总体是 \(O(n)\ 阅读全文
摘要:
前言 教练阳了,这次上的是录播课(悲 希望教练早点好起来 区间DP 区间DP,字面上讲,就是以一个区间为状态进行转移的动态规划。 在这类动态规划中,一般设状态 表示区间 的答案。 区间DP的题目的特征: :数据范围较小,一般 \(\le500 阅读全文
摘要:
前言 学习了简单背包DP,这一篇博客主要是讲背包问题进阶。所以这篇博客的难度系数很有可能不止 级,个人评价是 级。所以在基础背包部分不会讲太多,会直接使用一维背包。 基础背包 01背包 给定 个物品,一个容量为 的背包,每件物品只能用一次,有两个属性: 阅读全文
摘要:
前言 学习ST表,主要是倍增思想,可以理解为倍增优化后的DP。写在这里,一方面方便自己以后复习,另一方面给其他人参考。 UPD on 2023/3/21 :修改了格式,使格式与其他的学习笔记统一。 倍增 倍增引入 与其说倍增是一种算法,不如说倍增是一种思想。 倍增的时间复杂度和二分是一样的,都是 \ 阅读全文