文章
2
粉丝
134
获赞
9
访问
11.7k
这个题是dp的模板题, 力扣115原题
```
#include <iostream>
#include <vector>
using namespace std;
const long long haha=1000000007;
int main(){
int num;
cin>>num;
while(num--){
string a,b;
cin>>a>>b;
int len1=b.length();
int len2=a.length();
//短的是 b len1 第一维
vector<vector<long long> > dp(len2+1,vector<long long> (len1+1,0));
for(int j=0;j<=len2;j++){
dp[j][0]=1;
}
for(int i=1;i<=len2;i++) {
for (int j = 1; j <= len1; j++) {
if (a[i - 1] == b[j - 1]) {
dp[i][j] = (dp[i - 1][j]%haha + dp[i - 1][j - 1]%haha)%haha;
} else {
dp[i][j] = dp[i - 1][j ]%haha;
}
}
}
cout<<dp[len2][len1]%haha<<endl;
}
}
```
登录后发布评论
暂无评论,来抢沙发