国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Common Subsequence [dp]

2019-11-11 01:01:48
字體:
供稿:網(wǎng)友

A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1, x2, …, xm > another sequence Z = < z1, z2, …, zk > is a subsequence of X if there exists a strictly increasing sequence < i1, i2, …, ik > of indices of X such that for all j = 1,2,…,k, x ij = zj. For example, Z = < a, b, f, c > is a subsequence of X = < a, b, c, f, b, c > with index sequence < 1, 2, 4, 6 >. Given two sequences X and Y the PRoblem is to find the length of the maximum-length common subsequence of X and Y.

Input

The program input is from the std input. Each data set in the input contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct.

Output

For each set of data the program prints on the standard output the length of the maximum-length common subsequence from the beginning of a separate line. Sample Input abcfbc abfcab programming contest abcd mnp

Sample Output

4 2 0

題解

dp入門題

#include<stdio.h>#include<string.h>#include<algorithm>#define MAX_N 500using namespace std;int dp[2][MAX_N];char a[MAX_N],b[MAX_N];int main(){ while(~scanf("%s%s",a+1,b+1)){ int A=strlen(a+1); int B=strlen(b+1); memset(dp,0,sizeof(dp)); for(int j=1;j<=A;j++) for(int k=1;k<=B;k++){ if(a[j]==b[k]) dp[j&1][k]=dp[(j-1)&1][k-1]+1; else dp[j&1][k]=max(dp[(j-1)&1][k],dp[j&1][k-1]); } printf("%d/n",dp[A&1][B]); } return 0;}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 渭南市| 周至县| 乌苏市| 托克托县| 手机| 屯留县| 舞钢市| 临城县| 辽宁省| 镇江市| 金湖县| 中超| 淅川县| 福清市| 鄂伦春自治旗| 屏东县| 武宣县| 玉环县| 焦作市| 灵丘县| 理塘县| 牡丹江市| 定兴县| 乌恰县| 武乡县| 吉林省| 张北县| 南华县| 中江县| 通许县| 大名县| 都江堰市| 罗甸县| 汉寿县| 定襄县| 锡林郭勒盟| 琼海市| 成都市| 舞阳县| 辽阳县| 扎兰屯市|