码迷,mamicode.com
首页 > 其他好文 > 详细

【Codeforces 536B】Tavas and Malekas

时间:2019-05-20 21:11:15      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:必须   情况   span   字符串   连续   多次   空字符串   line   前缀   

536B Tavas and Malekas

题意:给一个字符串,现在要把这个字符串在一个大空字符串中放多次,每一次的开头在\(p_i\)位置,然后现在问这个大字符串有多少种情况。

思路:首先如果两个字符串放置的位置有重叠,重叠部分必须相等。

那么就是一个前缀要等于一个后缀。

所以果断z function。这样的话写起来比kmp快。。。

然后就可以对于每两个连续出现判断这些重复部分的交叉状况,同时算上所有的非自由的字符,最后求出\(2^{自由字符数量}\)即可。

【Codeforces 536B】Tavas and Malekas

标签:必须   情况   span   字符串   连续   多次   空字符串   line   前缀   

原文地址:https://www.cnblogs.com/denverjin/p/10896295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!