摘要: 一. KMP 1. border 如果一个字符串的前缀等于他的后缀,我们称这个字符串是原字符串的border。 例如,abcakmeabc 中,abc 就是一个border。 2. KMP 定义一个字符串的 nxtnxtnxt 数组表示:前 iii 个字符的最长border长度。 那怎么求一个字符的 阅读全文
posted @ 2024-02-05 15:12 sLMxf 阅读(50) 评论(0) 推荐(0)
摘要: 区间DP是啥? 就是一种高级的DP。先看例题: 1. 区间DP例题:合并石子 按照之前的DP,很容易想到定义 fif_ifi​ 表示堆前 iii 个的最优解。但这行得通吗? 可以想到,fi∼jf_{i\sim j}fi∼j​ 是没法维护的(只维护了前缀),故定义 fi,jf_{i,j}fi,j​ 表 阅读全文
posted @ 2024-02-05 13:42 sLMxf 阅读(30) 评论(0) 推荐(0)
摘要: 什么是字符串呢?就是一堆字符的东西。很容易想到用 char s[MAXN] 定义。 这里介绍一种新的数据结构:string。 如果要定义一堆字符串呢?用 string s[MAXN] 就可以了。 不过给定另一种定义方式——字典树(Trie) 先来看看字典树是怎么定义的。例如这几个字符串:iak,io 阅读全文
posted @ 2024-02-05 13:29 sLMxf 阅读(15) 评论(0) 推荐(0)