cf727e】的更多相关文章

题意:给你一个模式串和一堆长度相同的不相同的匹配串,问是否有一个方案可以让这个模式串由这些匹配串首尾相连组成,每个串只能出现一次. 思路:还是比较简单的,显然模式串每个位置最多匹配一个匹配串,因为所有的匹配串严格不同,每个位置有没有匹配哪个匹配串用ac自动机很容易就能跑出来,然后枚举一下位置就ok,还有模式串应该在开头加上尾部的一些字符,因为要求的是这个模式串要看成一个环. #include <bits/stdc++.h> using namespace std; ]; ]; ]; int t…
题目: CodeForces727E 分析: 看到字符串比较,肯定想到哈希啊--现学的哈希,先丢两个重要的公式 (\(seed\)是大于字符集大小的质数,\(p\)是大质数) \[hash[i]=(hash[i-1]*seed+s[i])mod \ p\] \[hash[l,r]=(hash[r]-hash[l-1]*seed^{r-l+1})mod \ p\] 把哈希想象成\(seed\)进制数,第二个公式很容易推出来.注意写的时候要防止出现负数(详见代码) 为了降低取模后不同字符串获得相同哈…