本题大意:给出两个字符串,让你求出最长公共子序列的长度并输出。

  本题思路:本题是经典的DP问题,由于是两个字符串,那么我们就用一个二维数组来进行区分,用dp[ i ][ j ]来表示在s1和s2中分别以i, j 结尾的子串中最长公共子序列的长度,很容易得出dp[i + 1] [j + 1] 的值只与dp[ i ][ j ] ,dp[i + 1][ j ] , dp[[ i ][ j + 1]的值有关,那么我们就可以列出状态转移方程。

  dp[ i + 1][j + 1] = s1[ i ] == s2[ j ] ? dp[ i ][ j ] + 1 : max(dp[i + 1][ j ], dp[ i ][j + 1]);

  参考代码:

 #include <iostream>
#include <string>
using namespace std; const int maxn = 1e3;
int dp[maxn][maxn]; int main () {
string s1, s2;
while(cin >> s1 >> s2) {
dp[][] = ;
int n = s1.length(), m = s2.length();
for(int i = ; i < n; i ++) {
for(int j = ; j < m; j ++) {
if(s1[i] == s2[j]) dp[i + ][j + ] = dp[i][j] + ;
else dp[i + ][j + ] = max(dp[i + ][j], dp[i][j + ]);
}
}
cout << dp[n][m] << endl;
}
return ;
}

POJ-1458.CommonSubsequence.(DP:最长公共子序列裸题)的更多相关文章

  1. POJ 1458 Common Subsequence(最长公共子序列LCS)

    POJ1458 Common Subsequence(最长公共子序列LCS) http://poj.org/problem?id=1458 题意: 给你两个字符串, 要你求出两个字符串的最长公共子序列 ...

  2. POJ 1458 Common Subsequence 最长公共子序列

    题目大意:求两个字符串的最长公共子序列 题目思路:dp[i][j] 表示第一个字符串前i位 和 第二个字符串前j位的最长公共子序列 #include<stdio.h> #include&l ...

  3. POJ 1458 Common Subsequence 最长公共子序列 LCS

    LCS #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> ...

  4. POJ 1159 Palindrome(区间DP/最长公共子序列+滚动数组)

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 56150   Accepted: 19398 Desc ...

  5. hdu1159 dp(最长公共子序列)

    题意:给两个字符串,求这两个字符串的最长公共子序列的长度 因为之前集训的时候做过,所以现在即使会做也并不是什么稀奇的事,依旧为了自己的浅薄感到羞愧啊``` 解法就是通过两个字符串的每个字符互相比较,根 ...

  6. POJ 1159 Palindrome(最长公共子序列)

    http://poj.org/problem?id=1159 题意: 给出一个字符串,计算最少要插入多少个字符可以使得该串变为回文串. 思路: 计算出最长公共子序列,再用原长-LCS=所要添加的字符数 ...

  7. poj 1080 ——Human Gene Functions——————【最长公共子序列变型题】

    Human Gene Functions Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17805   Accepted:  ...

  8. poj1159--Palindrome(dp:最长公共子序列变形 + 滚动数组)

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 53414   Accepted: 18449 Desc ...

  9. POJ 1159:Palindrome 最长公共子序列

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 56273   Accepted: 19455 Desc ...

随机推荐

  1. 【ASP.NET 插件】Plupload多格式多文件上传实现

    由于工作需求,要实现一个多格式多文件的上传功能,而且需要.NET版本的,嘿嘿,终于还是实现了,网上搜了很久,找到一篇不错的博文:WEB版一次选择多个文件进行批量上传(Plupload)的解决方案,在此 ...

  2. leetcode1010

    class Solution: def numPairsDivisibleBy60(self, time: 'List[int]') -> int: sums = 0 s = {} n = le ...

  3. RabbitMq(2) 简单消息队列

    <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client </ar ...

  4. 机器学习-文本数据-文本的相关性矩阵 1.cosing_similarity(用于计算两两特征之间的相关性)

    函数说明: 1. cosing_similarity(array)   输入的样本为array格式,为经过词袋模型编码以后的向量化特征,用于计算两两样本之间的相关性 当我们使用词频或者TFidf构造出 ...

  5. 【JEECG技术文档】表单配置-树形表单

    表单配置支持树型表单了,具体效果如下图: 配置说明: 1.是否树:选择是. 2.树形表单父Id:表的自关联外键. 3.树形表单列表:显示树形图标的列,如上图中为[组织机构名称]. 4.默认值:最外层数 ...

  6. iOS app bundle id

    每个app的bundle id是唯一的,不同开发者账号不能申请相同的bundle id,例如开发者账号B想用开发者A的bundle id,只能是开发者A将这个bundle id先删除,B才可以注册,否 ...

  7. li直接1px 像素的原因

    1.由于空白节点(多由于Enter造成),li不换行就可以解决问题. Internet Explorer会忽略节点之间生成的空白节点,其它浏览器不会忽略(可以通过检测节点类型,过滤子节点) 2.完美解 ...

  8. CSS COLOR

    CSS COLOR Color Review We've completed our extensive tour of the colors in CSS! Let's review the key ...

  9. 检查浏览器是否已经启用Java支持功能

    <script type="text/javascript"> document.write("navigator对象的方法"+"< ...

  10. SQLServer中利用NTILE函数对数据进行分组的一点使用

    本文出处:http://www.cnblogs.com/wy123/p/6908377.html NTILE函数可以按照指定的排序规则,对数据按照指定的组数(M个对象,按照某种排序分N个组)进行分组, ...