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