暑假集训第四周阶段二DP A - 最长公共子序列
来源:互联网 发布:aes算法加密过程 编辑:程序博客网 时间:2024/05/20 00:11
A - Common Subsequence
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription
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, 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.
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. 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.
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. 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 contest abcd mnp
Sample Output
420
动态规划的题一般都有一定的思想,也有一些比较典型,比较经典的题目
这就是典型的最长公共子序列,两个for循环,一直保持最大值,到最后找到最优解
123456789101112131415161718192021
#include<stdio.h>#include<string.h> char s1[1005],s2[1005]; int dp[1005][1005];int main(){ int len1,len2,i,j; while(scanf("%s %s",s1,s2)!=EOF) { len1=strlen(s1),len2=strlen(s2); memset(dp,0,sizeof(dp)); for(i=1;i<=len1;i++) for(j=1;j<=len2;j++) if(s1[i-1]==s2[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=dp[i-1][j]>dp[i][j-1]?dp[i-1][j]:dp[i][j-1]; printf("%d\n",dp[len1][len2]); } return 0;}
1 0
- 暑假集训第四周阶段二DP A - 最长公共子序列
- 暑假集训第四周阶段一 DP A - Robberies
- 暑假集训第四周阶段二E - Max Sum最大连续子数组和
- 最长公共回文子序列 【NOIP2016提高A组集训第14场11.12】
- 【NOIP2016提高A组集训第14场11.12】最长公共回文子序列
- 【JZOJ4889】【NOIP2016提高A组集训第14场11.12】最长公共回文子序列
- 暑假集训第四周 阶段一 DP 动态规划 B - Bone Collector
- 最长公共子序列--DP
- DP---最长公共子序列
- 最长公共子序列dp
- DP 最长公共子序列
- DP 最长公共子序列
- 最长公共子序列-DP
- 【DP】最长公共子序列。
- 最长公共子序列 DP
- DP--最长公共子序列
- dp最长公共子序列
- dp 最长公共子序列
- Power oj 1782
- 黑马程序员--学习OC加强内存管理
- 全排列
- UE4 iOS设备的兼容性
- 利用数组实现缓存实例的不可变类
- 暑假集训第四周阶段二DP A - 最长公共子序列
- JNDI配置c3p0连接池
- hdu-3008魔兽争霸
- [译]Front-end-Developer-Interview-Questions
- 《Objective-C基础教程》第四章 继承
- poj1753 Flip Game DFS,枚举
- Best Time to Buy and Sell Stock II
- [Learning Linux For Fun] unit 1 1.2~1.3
- leetcode_Median of Two Sorted Arrays