Codeforces 536BTavas and Malekas
Posted denverjin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 536BTavas and Malekas相关的知识,希望对你有一定的参考价值。
536B Tavas and Malekas
题意:给一个字符串,现在要把这个字符串在一个大空字符串中放多次,每一次的开头在\(p_i\)位置,然后现在问这个大字符串有多少种情况。
思路:首先如果两个字符串放置的位置有重叠,重叠部分必须相等。
那么就是一个前缀要等于一个后缀。
所以果断z function
。这样的话写起来比kmp
快。。。
然后就可以对于每两个连续出现判断这些重复部分的交叉状况,同时算上所有的非自由的字符,最后求出\(2^{自由字符数量}\)即可。
以上是关于Codeforces 536BTavas and Malekas的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #536 (Div. 2) - D. Lunar New Year and a Wander(最短路)
codeforces 536a//Tavas and Karafs// Codeforces Round #299(Div. 1)
Codeforces 536F Lunar New Year and a Recursive Sequence | BSGS/exgcd/矩阵乘法
Codeforces Round #536 (Div. 2) B. Lunar New Year and Food Ordering
Codeforces Round #536 E. Lunar New Year and Red Envelopes /// 贪心 记忆化搜索 multiset取最大项