题意:给定两个字符串a,b,长度相等且不超过100。每次可以将a的一个子串改为江铜字符组成的子串,问最少多少次能将a变为b
题解:这题稍微有点难了emm
- 大佬题解:先不考虑a,dp[i][j]先表示将一个空串转化为b[i~j]的最小操作;然后再考虑a的影响,如果a[k]==b[k],dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k+1][j])。
总结:重点是分成两步解决
代码:
大佬代码:
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
using namespace std;
const int N = 105;
int dp[N][N];
char a[N], b[N];
int main() {
while (~scanf("%s", a + 1)) {
scanf("%s", b + 1);