博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Common Subsequence(dp)
阅读量:5154 次
发布时间:2019-06-13

本文共 2027 字,大约阅读时间需要 6 分钟。

Common Subsequence

Time Limit: 2 Sec  Memory Limit: 64 MB

Submit: 951  Solved: 374

Description

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, xij = zj. For example, Z = <A, b, f, c>is a subsequence of X = <A, b, f, c 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 a text file. Each data set in the file contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct.The length of the string is less than 1000.

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 abfcabprogramming contestabcd mnp

Sample Output

420
1 #include
2 #include
3 #define Max( a, b ) (a) > (b) ? (a) : (b) 4 5 char s1[1005], s2[1005]; 6 7 int dp[1005][1005]; 8 9 int main()10 {11 int len1, len2;12 while( scanf( "%s %s", s1+1, s2+1 ) != EOF )13 {14 memset( dp, 0, sizeof(dp) );15 len1 = strlen( s1+1 ), len2 = strlen( s2+1 );16 for( int i = 1; i <= len1; ++i )17 {18 for( int j = 1; j <= len2; ++j )19 {20 if( s1[i] == s2[j] )21 {22 dp[i][j] = dp[i-1][j-1] + 1;23 }24 else25 {26 dp[i][j] = Max ( dp[i-1][j], dp[i][j-1] );27 }28 }29 }30 printf( "%d\n", dp[len1][len2] );31 }32 return 0;33 }
AC

 

 

转载于:https://www.cnblogs.com/get-an-AC-everyday/p/4198474.html

你可能感兴趣的文章
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>
校门外的树2 contest 树状数组练习 T4
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
Program exited with code **** 相关解释
查看>>
植物大战僵尸中文年度版
查看>>
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
投标项目的脚本练习2
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>
Caroline--chochukmo
查看>>
利用jquery的contains实现搜索功能
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>