文章
2
粉丝
134
获赞
0
访问
10.3k
这个题是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; } }
```
登录后发布评论
暂无评论,来抢沙发