1 条题解
-
0
#include <iostream> #include <cstring> typedef long long ll; using namespace std; const int N = 1010; ll dp[N][N];//dp[i][j]表示t串前j个字符在s串中前i个字符中出现的次数 int main() { int n, m; cin>>n>>m; string s, t; cin>>s>>t; for(int i = 0; i <= n; i ++ ) dp[i][0] = 1; for(int i = 1; i <= n; i ++ ) for(int j = 1; j <= m; j ++ ) { //不选择第i个字符 dp[i][j] = dp[i - 1][j]; //想等了才可以选择 if(s[i - 1] == t[j - 1]) dp[i][j] += dp[i - 1][j - 1]; } cout<<dp[n][m]<<endl; }
- 1
信息
- ID
- 570
- 时间
- 2000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 2
- 上传者