动态规划
最长公共子序列(递归+备忘录)
#include#include #define N 100 using namespace std; char A[N]="ABCBDAABCD"; char B[N]="BDCAB"; int memory[N][N]; int dp(int i,int j){ if(memory[i][j]!=0) return memory[i][j]; if(i==0||j==0)//边界 return 0; if(A[i]==B[j])//最后一个字符相同 memory[i][j]=dp(i-1,j-1)+1; else memory[i][j]=max(dp(i,j-1),dp(i-1,j)); return memory[i][j]; } void print(int m,int n){ for(int i=0;i<=m;i++){ for(int j=0;j<=n;j++) cout<



