动态规划 最长公共子序列

来源:互联网 发布:淘宝口令生成器 编辑:程序博客网 时间:2024/06/11 11:11

问题的递归式写成:


recursive formula

回溯输出最长公共子序列过程:

flow

下列代码只是求解c[i][j];

#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;int max(int a,int b){    return a>b?a:b;    }int main(){    int c[10][10];memset(c,0,sizeof(c));char a[10]="0bdcaba";char b[10]="0abcbdab";for(int i=0;i<7;i++)for(int j=0;j<8;j++){        if(i==0||j==0)    c[i][j]=0;    if(i>0&&j>0&&a[i]==b[j])    c[i][j]=c[i-1][j-1]+1;    if(i>0&&j>0&&a[i]!=b[j])    c[i][j]=max(c[i-1][j],c[i][j-1]);    }    for(int i=0;i<7;i++)for(int j=0;j<8;j++)cout<<c[i][j]<<" ";}


原创粉丝点击