536B Tavas and Malekas
题意:给一个字符串,现在要把这个字符串在一个大空字符串中放多次,每一次的开头在\(p_i\)位置,然后现在问这个大字符串有多少种情况。
思路:首先如果两个字符串放置的位置有重叠,重叠部分必须相等。
那么就是一个前缀要等于一个后缀。
所以果断z function
。这样的话写起来比kmp
快。。。
然后就可以对于每两个连续出现判断这些重复部分的交叉状况,同时算上所有的非自由的字符,最后求出\(2^{自由字符数量}\)即可。
原文地址:https://www.cnblogs.com/denverjin/p/10896295.html
时间: 2024-10-05 05:50:22