【总结】字符串
先讲一下哈希,因为小曹只给我们布置了哈希的题单。
哈希算法可以用于描述很多相等类平均值问题,通常无法刻画两个对象的大小关系但是可以刻画两者的相等关系,可以通过调整系数做到唯一组合为 \(0\) 的效果。
说一下一些题目的重要指示:
P9482 [NOI2023] 字符串
需要我们放缩题目中给的限制,最后一步容斥为序列前缀后缀,在此过程中,我们必须时刻注意字符串题以下要领:
- 字符串问题相比序列问题更倾向于本身前缀后缀的特殊性质,更注重取等而不关心具体大小,比如 border 就能很好体现这一点,或者说字符串算法本身就是为了处理字符串结构各个部分的相关性,而非具体赋权求值。
- 对于字符串题目中给到的性质,如果对比两个字符串完全不重合,那么大概率需要转化为重合,否则即无法利用字符串的优良性质。
然后同样关键的一步是利用回文相等的性质固定字符串字典序大小关系,这一步可以当一个 trick 记录下来,同样满足上述所说字符串重合的性质。
最后一步二维数点就非常没有含金量了,随便做做就会了。
CF1063F String Journey
非常好的一个题。
首先非常简单但很重要的一步是,需要注意到子串的关键性质,偏直觉的将若干子串长度转化为连续的一定不劣。
后面利用 hash 转化,发现一个关键性质是 \(f_i \le f_{i - 1} + 1\),这个性质揭示了字符串中很多问题的本质,都能使用类似 border 的相等性将两个对象部分联系在一起,或者更重要的是,需要探究具有极多相同结构的东西中,大小不等关系。
最后一步处理字符串个人觉得是偏经验的,写过就会了。
然后有时间补坑。

浙公网安备 33010602011771号