TJOI2017DNA】的更多相关文章

对每个子串暴力匹配至失配三次即可.可以用SA查lcp.然而在bzoj上被卡常了.当然也可以二分+哈希或者SAM甚至FFT. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define…
P3763 [TJOI2017]DNA 字符串匹配,字符集大小为\(4\),认为相差不超过\(3\)即合法. 对每一种字符分开考虑不同产生的贡献. 对于串\(S\),如果当前位置相同则\(S_i=1\),否则\(S_i=0\). 对于串\(T\)则相反. 这样就保证了如果\(S\)串是字符\(str\),但是\(T\)串不是,那么就会产生\(1\)的贡献. 然后\(ntt\)即可,不开\(O2\)要\(t\)成暴力,卡了好久. // luogu-judger-enable-o2 #include…
[JZOJ5897]密匙--哈希骚操作 题目链接 太懒了自行Google 前置技能 二分/倍增求LCP e.g TJOI2017DNA 分析 这题看了样例解释才知道什么意思 本以为自己身为mo法师蛤希已经掌握的差不多,做了这道题才发现我还是Too Young Too Simple 考虑字符集只有\({a,b}\)怎么做,我们每次二分同时判断要不要转化就好了 std就很强了,我们对每一个字母ch,都对\(S\)串跑遍01蛤希(瞎编的名字) \(ha[i][ch-'a']=ha[i-1][ch-'a…
就多项式乘法这个地方不太熟 再多巩固一下. LINK:[ZJOI2014力](https://www.luogu.com.cn/problem/P3338) 把$(j-i)^2$看成一个函数 可以发现是一个卷积 FFT优化即可. LINK:[TJOI2017DNA](https://www.luogu.com.cn/problem/P3763) 这道题还是FFT匹配字符串的应用,怎么匹配我不再赘述 其实就是翻转一下相乘一下... 考虑怎么求答案 可以最多有三个位置不同 我们很难处理这个问题..…