题解:AT_abc391_g [ABC391G] Many LCS
SunburstFan · · 题解
[ABC391G] Many LCS
题目大意
有一个长度为
解题思路
dp of dp,之前并没有做过这类的题目。
回忆计算 f 的差分数组只由 0 和 1 组成。
对原串
对每个状态
时间复杂度
这里给出核心代码:
for(int i=1;i<=n;i++){
a[i]=s[i-1]-'a';
}
for(int S=0;S<(1<<n);S++){
for(int i=0;i<26;i++){
nxt[S][i]=calc(S,i);
}
}
f[0][0]=1;
for(int i=0;i<m;i++){
for(int S=0;S<(1<<n);S++){
for(int j=0;j<26;j++){
f[nxt[S][j]][i+1]=(f[nxt[S][j]][i+1]+f[S][i])%mod;
}
}
}
calc 部分略。