URAL 1996 Cipher Message 3 (FFT + KMP)】的更多相关文章

转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题意 :给出两个串A , B,每个串是若干个byte,A串的每个byte的最后一个bit是可以修改的.问最少修改多少,使得B串是A的一个子串. 2013年NEERC的题.......感觉[buaa]sd0061教我做这题. NEERC是毛子题,但是这套题感觉除了题面很难读之外,并不是很难... 目前为止,J题貌似全队都没看题,E题还在WA中,其它题…
题目 神题. 记得当初DYF和HZA讲过一个FFT+KMP的题目,一直觉得很神,从来没去做. 没有真正理解FFT的卷积. 首先考虑暴力. 只考虑前7位 KMP 找出所有 B 串可以匹配 A 串的位置. 设 a(i) = A(i) & 1, b(i) = B(i) & 1 然后相当于求所有的 c(i) =  ∑k=0m-1 a(i+k) * b(k) 考虑卷积形式: c(i) =  ∑k=0m-1 a(k) * b(i - k) 将b串反过来 c(i) = ∑k=0m-1  a(k) * b…
传送门 解题思路 因为要完全匹配,所以前七位必须保证相同,那么就可以把前7位提出来做一遍\(kmp\)匹配,最后的答案一定在这些位置里.考虑最后一位,可以把最后一位单独取出来,要计算的是最后一位相同的个数,那么就可以做两次\(fft\)得到\(haming dis\).先把\(b\)翻转,然后做一次,得到的是全为\(1\)的个数,再把\(a,b\)取反做一次,得到的是全为\(0\)的个数,然后扫一遍\(kmp\)后的匹配位置,取个最小值. 代码 #include<iostream> #incl…
题面传送门 题目大意:给你两个$01$串$a$和$b$,每$8$个字符为$1$组,每组的最后一个字符可以在$01$之间转换,求$b$成为$a$的一个子串所需的最少转换次数,以及此时是从哪开始匹配的. FFT怎么变成字符串算法了 每组的前$7$个字符是不能动的,所以把它压成一个数,用$kmp$求出$b$可能作为$a$子串的所有结束位置 求最少的转换次数呢,把$a,b$串每一组的最后一位取出来分别组成新串,再把$b$的新串反转求卷积即可 反转$b$串的目的是,让答案出现在同一个系数里,算是$FFT$…
题目 Source http://acm.timus.ru/problem.aspx?space=1&num=1996 Description Emperor Palpatine has been ruling the Empire for 25 years and Darth Vader has been the head of the Empire Armed Forces. However, the Rebel movement is strong like it never used t…
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1654 题意:简单的理解就是,把一个序列中相邻的且是偶数个相同的字符删除,奇数个的话就只保留一个.但是要注意,删除的过程中,可能会导致本来不相邻的相同字符变得相邻了,这时候也要删除.如果直接暴力:每次查看串中是否有相同的相邻字母,如果有就删去,然后继续从前向后查找,这样肯定会超时(O(N^2)). 优化的方法,利用栈的特殊结构O(N),从左向右扫描,判断当前的字符和栈顶元素是否相同,如果相同栈顶…
Cipher Message Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Description Müller tried to catch Stierlitz red-handed many times, but always failed because Stierlitz could ever find some excuse. Once Stierlitz was looking…
题意 给\(N,M(N,M \le 250000)\)的两个由8位二进制表示的两个序列,允许改变每个数字的第8位的数值(即0→1,1→0),求改变最少次数使得长为\(M\)的序列为长为\(N\)的连续子序列,在次数最少的前提下,找到下标最小的起始位置. 思路 因为只能改变第8位的状态,所以若能匹配的话,前7位数值需要相同,这步通过KMP完成即可. 剩下就是如何快速求每个匹配区间所需要的代价,即找出两个长为\(M\)的序列对应位不同的个数. 考虑位置\(A[i, i + M - 1]\),若按\(…
题目: Description CJB天天要跟妹子聊天,可是他对微信的加密算法表示担心:“微信这种加密算法,早就过时了,我发明的加密算法早已风靡全球,安全性天下第一!” CJB是这样加密的:设CJB想加密的信息有 m 个字节.首先,从网上抓来一张 n(n≥m) 个字节的图片,分析里面的每个字节(byte).每个字节有8位(bit)二进制数字.他想替换掉某些字节中最低位的二进制数字,使得这张图片中,连续 m 个字节恰为他想加密的信息.这样,图片看起来没什么区别,却包含了意味深长的信息. 很显然,不…
Problem Description Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important messages and she was preparing for sending it to ykwd. They had agreed that each letter of these messages would be transfered to a…