题目1
给你类似剪刀石头布游戏的五种手势和十种克制关系。每种手势克制其他两种手势并被另外两种手势克制。给你两个字符串分别表示A,B的 手势顺序,A长B短,你可以随意挪动B相对于A的位置,求B最多能赢多少次?
1 | 若两个串为abcde和ede |
题目2
给你两个字符串原串和匹配串,串里只包含小写字母和∗
,∗
可以表示任意字符,问匹配串在原串不同位置中出现多少次,起始位置不同即不同位置。
我们还是利用上一题逆置短串构造卷积的方法,我们把*
的值当作赋为0,pow(str1[i]−str2[i],2)*str1[i]*str2[i]
化简消去负数项即可
FFT
1 | const int maxn=4e6//开四倍所有数组。准确的数值是乘法结果数组的2进制对齐那么大。这个值小于四倍, |
NTT
1 | typedef long long ll; |
- 本文作者: fightinggg
- 本文链接: http://fightinggg.github.io/yilia/yilia/PH7QQ8.html
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!