![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM-字符串
文章平均质量分 69
ACM-字符串
nefu-ljw
这个作者很懒,什么都没留下…
展开
-
2021牛客寒假算法基础集训营4 B题 武辰延的字符串【字符串哈希+二分】
题目传送门:https://ac.nowcoder.com/acm/contest/9984/B思路题意是找出字符串ttt的前缀,使之由字符串sss的两个前缀组成,即ti+j=si+sjt_{i+j}=s_i+s_jti+j=si+sj,求满足条件的总对数。首先根据前缀的特性不难想到,必须要有ti=sit_i=s_iti=si,为必要条件。那么枚举sss和ttt的所有相同前缀sis_isi,然后求t−sit-s_it−si,找其能匹配上sss的前缀sjs_jsj的最大长度,计入答案即可原创 2021-02-19 18:04:40 · 1263 阅读 · 2 评论 -
超级码力在线编程大赛初赛 第1场 T4.对称前后缀【字符串/区间DP】
思路用dp[j][i]表示[j,i]区间内的最长前后缀的一半(奇数则不算中间那个数)。转移方程:dp[j][i]=dp[j+1][i-1]+1dp[j][i]=dp[j+1][i−1]+1考虑两种情况:①[j,i]区间内最长前后缀重合。例如abba,此时dp[1][2]=1,dp[0][3]=2,对于[0,3]区间,ans+=2*dp[0][3]。②[j,i]区间内最长前后缀被隔断(无法重合)。例如abca,此时dp[0][3]=1,对于[0,3]区间,ans+=dp[0][3]。原创 2020-08-29 17:31:38 · 309 阅读 · 0 评论 -
AC自动机 进阶练习 (结合算法:矩阵快速幂/DP/高精度)
POJ 2778 DNA Sequence#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;typedef long long ll;const int N=105,M=4,K=12,mod=1e5;int to_int(char c) // A,T,C,G -> 0,1,2,3{ if(c=='A'原创 2020-05-26 22:07:22 · 474 阅读 · 0 评论 -
AC自动机 入门练习题
洛谷日报 强势图解AC自动机 https://www.luogu.com.cn/blog/3383669u/qiang-shi-tu-xie-ac-zi-dong-jiAC自动机-多模式匹配算法 https://blog.csdn.net/xaiojiang/article/details/52299258AC 自动机 - OI Wiki https://oi-wiki.org/string/ac-automaton/...原创 2020-05-21 21:57:51 · 1178 阅读 · 0 评论 -
字典树
hdu 1671 Phone List给你n个字符串,如果存在一个字符串是其他某个字符串的前缀,则输出NO,否则输出YES。#include <bits/stdc++.h>using namespace std;const int N=1e4+10,M=N*10;int t,n,num,ch[M][10],cnt[M];string a[N];bool cmp(strin...原创 2020-03-02 22:00:24 · 220 阅读 · 0 评论 -
KMP算法(练习题)
hdu 1711 Number Sequence#include <bits/stdc++.h>using namespace std;const int N=1e6+10;int t,n,m,a[N],b[N],ne[N];//不要定义成next[N],杭电oj的G++编译过不了,有变量名字冲突void get_next(){ memset(ne,0,sizeof...原创 2020-03-02 21:56:51 · 1071 阅读 · 0 评论 -
Codeforces Round #658 (Div. 2) C1,C2题 Prefix Flip【字符串/思维】
官方题解写得太好了,通俗易懂,推荐大家去看官方题解!看完之后我竟然觉得英语很亲切???懂了,下次英语六级就用codeforces复习C1. Prefix Flip (Easy Version)Easy Version,官方题解给出了两种做法。Solution 1: O(n) time with 3n operationsSolution 2: O(n2) time with 2n operations首先,对于[1,i]区间内的所有字符先全部取反,再翻转的操作,等价于另一个操作:把区间分成两原创 2020-07-22 13:23:34 · 336 阅读 · 0 评论