【题解】 Pattern Matching in A Minor "Low Space" CCPC Mianyang 2022
https://vjudge.net/contest/573644#problem/K
字符串匹配,但卡空间。
考虑哈希做法,不妨把 \(s\) 每 \(20000\) 个字符哈希成一个字符,于是 \(s\) 长度只有 \(500\),可以跑个 KMP。
于是对于 \(t\),我们只需要同时维护 \(20000\) 个 KMP 的指针。
但如果字符串长度不是 \(20000\) 的倍数怎么办呢?注意到我们可以手动 hash 匹配最后一个不完整区间,gg!
复杂度线性,正确性不好说,因为要 hash!