トピック
このトピックは目に留まります
dp [i] [j] [k] dp [i] [j] [k]d p [ i ] [ j ] [ k ]は計画の数を意味し
ます!しかし、慎重に考えてください、dp dpd pタイプは、現在の文字と前の文字列の関係を反映していません(dp dpd p式:n 1つの次元を追加したことで私を責めますか?)
したがって、別の次元を追加する必要があります0/1 0/10 / 1現在の文字がストリングに接続されていることを示しています/ //現在の文字は新しいサブストリングの始まりです
0/10/10 / 1二つの配列より直感的な少し離れた:
我々は、ANS [I] [J] [a n s [ i ] [ j ] [ k ]はAAを意味しますA字符串第 i i iキャラクターBBBストリングjjj文字のサブストリングの現在の数はkkですkに対する回答の数
sum [i] [j] [k] sum [i] [j] [k]s u m [ i ] [ j ] [ k ]は、現在AAにあることを意味しますA字符串第 i i iキャラクターBBBストリングjjj文字のサブストリングの現在の数はkkですで、プランの数kは、
その後、関係式は、それを行う方法?
まず現在を考えるANS ANSN 、Sまたは使用A [i]とA [i]がA [ I ]か、
そう[I] [J] [L] = ANS ANS [I - 1] [J] [L] +和[I] [J] [L] ANS [I] [J] [L ] = ans [i-1] [j] [l] + sum [i] [j] [l]a n s [ i ] [ j ] [ l ]=a n s [ i−1 ] [ j ] [ l ]+s u m [ i ] [ j ] [ l ]は
、A [i]≠B [i] A [i] \ neq B [i]の場合に明らかです。A [ i ]=B [ I ]时和の合計値S U Mがある00
经过思考可知当 A [ i ] = B [ i ] A[i]=B[i] A [ i ]=B [ i ]このとき、前のサブストリングに接続するか、新しいサブストリングを作成する
ので、sum [i] [j] [l] = sum [i − 1] [j − 1] [l] + ans [ i − 1] [j − 1] [l − 1] sum [i] [j] [l] = sum [i-1] [j-1] [l] + ans [i-1] [j-1 ] [l-1]s u m [ i ] [ j ] [ l ]=s u m [ i−1 ] [ j−1 ] [ l ]+a n s [ i−1 ] [ j−1 ] [ l−1 ]
ははは終わった?美しくなりたいdp [1000] [200] [200] [2] ??Dp
[1000] [200] [200] [2] ??D P- 〔1 0 0 0 ] [ 2 0 0 ] [ 2 0 0 ] [ 2 ] ??我々は最適化の空間にしているので、明らかに揚げ
オフ卵ロールとその直接何ものような一次元に見えることに注意
の空間計算量O( 4 mk)O(4mk)O (4 m k )時間の複雑さO(nmk)O(nmk)O (n m k )大きな問題
はありません、コード
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int n,m,k,now,ans[2][202][202],sum[2][202][202];
char a[1010],b[202];
int main(){
cin>>n>>m>>k;
scanf("%s%s",a+1,b+1);
ans[0][0][0]=ans[1][0][0]=now=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
for(int l=1;l<=k;l++){
if(a[i]==b[j])sum[now][j][l]=(sum[now^1][j-1][l]+ans[now^1][j-1][l-1])%mod;
else sum[now][j][l]=0;
ans[now][j][l]=(ans[now^1][j][l]+sum[now][j][l])%mod;
}
}
now^=1;
}
printf("%d\n",ans[now^1][m][k]);
}
コードは長くありませんね
P. S. PSP 。S 。エスケープ月の間に挟ま操作以来+++毎月の試験が悪すぎる+++食べ物が多すぎて、今は顔がなく、フルタイムで半分になっています(ヘッドティーチャーとコーチは応募時に両方のレベルに合格できないと推定されているため、2年生で試験を受けることはできません...NOIPNOIPしかできない方法はありませんN O I P元の質問は、知識のポイントを確認することです...不満.jpg .jpg。j p g