URAL - 1996 Cipher Message 3 FFT+KMP
题目:问至少将多少个A串的字节的最低位取反使得B串是A串的子串。思路:我们发现将A串和翻转的B串做卷积之后,cost[i+m-1]就是从A串第i位开始的子串和B串在多少个位置同为1,然后将A,B串的0,1取反,再做一次卷积,cost[i+m-1]就是从A串第i位开始的子串和B串在多少个位置同为0,两者相加就是在多少个位置是相同的,然后A,B都去掉最后一位,做kmp代码:#pragm
原创
2017-08-07 16:55:31 ·
542 阅读 ·
0 评论