枚举所有长度为 m 的子串作为可能密码,用双哈希区分子串。对每种密码按出现位置贪心统计不重叠出现次数,次数正好为 k 的密码就是答案。 import sys MOD=1000000007 MOD2=998244353 def solve(): n,m,k=int(next(it)),int(next(it)),int(next(it)) s=next(it) b=911382323 x=pow(b,m-1,MOD) y=pow(b,m-1,MOD2) h=g=0 for c in s[:m]: v=ord(c)-47 h=(h*b+v)%MOD g=(g*b+v)%MOD2 d={} for ...