Common Subsequence(hdu 1159)

来源:互联网 发布:dota2天梯淘宝买账号 编辑:程序博客网 时间:2024/05/01 14:28

Common Subsequence

TimeLimit: 2000/1000 MS(Java/Others)    MemoryLimit: 65536/32768 K (Java/Others)
Total Submission(s):11711    AcceptedSubmission(s): 4810


Problem Description
A subsequence of a given sequence is the given sequence with someelements (possible none) left out. Given a sequence X =<x1, x2, ..., xm> another sequence Z= <z1, z2, ..., zk> is a subsequenceof X if there exists a strictly increasing sequence<i1, i2, ..., ik> of indices of Xsuch that for all j = 1,2,...,k, xij = zj. For example, Z =<a, b, f, c> is a subsequence of X =<a, b, c, f, b, c> with indexsequence <1, 2, 4, 6>. Given twosequences X and Y the problem is to find the length of themaximum-length common subsequence of X andY. 
The program input is from a text file. Each data set in the filecontains two strings representing the given sequences. Thesequences are separated by any number of white spaces. The inputdata are correct. For each set of data the program prints on thestandard output the length of the maximum-length common subsequencefrom the beginning of a separateline. 
 

Sample Input
abcfbcabfcab programming contest abcd mnp
 

Sample Output
4 20
 

Source
SoutheasternEurope 2003
 

Recommend
Ignatius
 

#include<iostream>#include <stdio.h>#include<algorithm>#include <string>#include<string.h>#include<stdlib.h>#include <math.h>#define MAXLEN 500using namespace std;void lcs(char *x,char *y,int m,int n,int c[][MAXLEN]){    int i,j;    for(i=0;i<m;i++)       c[i][0]=0;    for(i=0;i<n;i++)       c[0][i]=0;    for(i=1;i<=m;i++)       for(j=1;j<=n;j++){          if(x[i-1]==y[j-1])              c[i][j]=c[i-1][j-1]+1;          else if(c[i-1][j]>c[i][j-1])              c[i][j]=c[i-1][j];          else               c[i][j]=c[i][j-1];       }    printf("%d\n",c[m][n]);}int main(){   intc[MAXLEN][MAXLEN];    char x[MAXLEN],y[MAXLEN];    int m,n;    while (~scanf("%s%s",x,y)) {       m=strlen(x);       n=strlen(y);       lcs(x,y,m,n,c);    }    return 0;}


0 0
原创粉丝点击