C语言 动态规划&背包 最长公共子序列问题
2018-01-25 15:58
232 查看
最长公共子序列问题
Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic
Problem Description
给定两个序列X=
Input
输入数据有多组,每组有两行 ,每行为一个长度不超过500的字符串(输入全是大写英文字母(A,Z)),表示序列X和Y。
Output
每组输出一行,表示所求得的最长公共子序列的长度,若不存在公共子序列,则输出0。
Example Input
ABCBDAB BDCABA
Example Output
4
#include<stdio.h> #define N 500 #include <string.h> int main() { int i,j,m,n,c ; char X ,Y ; while(gets(X)&&gets(Y)) { m=strlen(X); n=strlen(Y); for ( i=0; i<=m; i++ ) c[i][0]=0; for ( j=0; j<=n; j++ ) c[0][j]=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] ); } return 0; }
相关文章推荐
- C语言 动态规划&背包 数字三角形问题
- C语言背包问题优化
- DP实例之01背包问题C语言实现
- [算法]背包问题的动态规划算法解答,C语言实现
- hdoj problem 1203 I NEED A OFFER!(动态规划&&背包问题(01背包问题))
- 纯C语言:贪心部分背包问题源码
- 0-1背包问题-C语言实现
- C语言,回溯法0-1背包问题
- C语言中的0-1背包问题
- 动态规划解最长公共子序列问题(LCS)C语言加注释
- 动态规划之最长公共子序列、最长公共子串和背包问题
- [算法]简单的背包问题递归解法,C语言实现
- 动态规划之背包问题(C语言)
- [算法]数据结构算法背包问题解法之递归解法,C语言实现
- 01背包问题(用c语言实现)-回溯法求解
- [C语言]背包问题
- 贪心算法解决部分背包问题(C语言,ruby)
- C语言 动态规划&背包 免费馅饼
- 背包问题-C语言实现
- C语言 动态规划&背包 最长上升子序列