http://poj.org/problem?id=1458

一道容易的DP,求最长公共子序列的

dp[i][j],代表str1中的第i个字母和str2中的第j个字母的最多的公共字母数

 #include <stdio.h>
#include <iostream>
#include <string.h> using namespace std;
int dp[][]={}; int main()
{
char str1[],str2[];
while(~scanf("%s %s",str1,str2))
{
/* scanf("%s",str1)
scanf("%s",str2);*/
int len1=strlen(str1);
int len2=strlen(str2);
for(int i=;i<=len1;i++)
for(int j=;j<=len2;j++)
{
if(str1[i-]==str2[j-]) dp[i][j]=dp[i-][j-]+; //这个就是那个递推公式,但str1[i-1]和str2[j-1]想等于时dp[i][j]就会等于前一个加一,不等就是等于前面的最大的一个
else dp[i][j]=max(dp[i-][j],dp[i][j-]);
}
printf("%d\n",dp[len1][len2]);
}
return ;
}

http://poj.org/problem?id=1159

这个是POJ1159的题目,试求插入的最少的字符,使其变成回文字符串

这个最少的字符MIN=N-N和N的逆序数的最长公共子序列

所以这道题也就是和上面的那个题目一样,求最长的公共子序列,不过有一个地方比上面要特殊一点,就是数组只可以开滚动数组,不然POJ就爆内存

也只是在部分地方进行了改动即可

在这里也使用了一个我以前从未用过的函数,reverse ,这个函数在algorithm的头文件里

作用是把远数组变成逆序的,使用方法也就是reverse(begin(),end());

 #include <stdio.h>
#include <iostream>
#include <string>
#include <string.h>
#include <algorithm> using namespace std; int dp[][];
string str1,str2; int main(){
int n;
while(scanf("%d",&n)!=EOF){
cin>>str1;
str2=str1;
memset(dp,,sizeof(dp));
reverse(str2.begin(),str2.end());
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
if(str1[i-]==str2[j-]){
int tem=dp[(i-)%][j-]+; //这个和上面的不同的原因在于这个是滚动数组,而滚动数组的话,原数组一般都是有值的,只不过是新的值在原数组上进行覆盖而已,求最大的公共子序列,就不能排除原来的数组的dp[i%2][j]会小于tmp;
dp[i%][j]=max(dp[i%][j],tem);
}
else dp[i%][j]=max(dp[(i-)%][j],dp[i%][j-]);
}
cout<<n-dp[n%][n]<<endl;
}
return ;
}

POJ 1458 1159的更多相关文章

  1. LCS POJ 1458 Common Subsequence

    题目传送门 题意:输出两字符串的最长公共子序列长度 分析:LCS(Longest Common Subsequence)裸题.状态转移方程:dp[i+1][j+1] = dp[i][j] + 1; ( ...

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

    POJ 1458 Common Subsequence(LCS最长公共子序列)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?c ...

  3. POJ 1458 最长公共子序列(dp)

    POJ 1458 最长公共子序列 题目大意:给出两个字符串,求出这样的一 个最长的公共子序列的长度:子序列 中的每个字符都能在两个原串中找到, 而且每个字符的先后顺序和原串中的 先后顺序一致. Sam ...

  4. POJ 1458 Common Subsequence (动态规划)

    题目传送门 POJ 1458 Description A subsequence of a given sequence is the given sequence with some element ...

  5. HDU 1159 &amp;&amp; POJ 1458

    最长公共子序列.状态转移方程见代码. #include <iostream> #include <cstdio> #include <cstring> using ...

  6. HDU 1159 Common Subsequence(POJ 1458)

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...

  7. POJ 1458 Common Subsequence (zoj 1733 ) LCS

    POJ:http://poj.org/problem?id=1458 ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=73 ...

  8. OpenJudge/Poj 1458 Common Subsequence

    1.链接地址: http://poj.org/problem?id=1458 http://bailian.openjudge.cn/practice/1458/ 2.题目: Common Subse ...

  9. poj 1458 Common Subsequence(区间dp)

    题目链接:http://poj.org/problem?id=1458 思路分析:经典的最长公共子序列问题(longest-common-subsequence proble),使用动态规划解题. 1 ...

随机推荐

  1. Semantic ui 学习笔记 持续更新

    这个semantic 更新版本好快~ 首先是代码的标识<code></code> 具体样式就是红框这样的 圈起来代码感觉不错 不过要在semantic.css里在加上如下样式~ ...

  2. VisualStudio基本使用(1)-显示行号

    "工具"-"选项"-"文本编辑器"-"C/C++"-"常规",勾选"行号"复选框 ...

  3. ASP.NET MVC Razor语法

    ASP.NET MVC Razor语法 (一) 关于_ViewStart.cshtml文件     使用Razor模板引擎的话,会自动生成一个_ViewStart.cshtml文件.事实上,_View ...

  4. Java中native关键字

    Java中native关键字 标签: Java 2016-08-17 11:44 54551人阅读 评论(0) 顶(23453) 收藏(33546)   今日在hibernate源代码中遇到了nati ...

  5. jquery 选择器 -高级使用 新的 心得

    jQuery的each函数: each函数等同于c语言中的for函数: 里面每次循环的 "context 上下文" == 当前的dom ,可以使用this, 也可以使用$(this ...

  6. Linux 下 netbeans 字体抗锯齿正解

    转自:http://leenjewel.blog.163.com/blog/static/601937922010124444051/ 说来这个不难,主要是我看网上有的写的不是很明确,甚至有的写的根本 ...

  7. 利用PHP从淘宝采集评论和成交数据

    如果不想通过淘宝开放平台API获取数据,那么另外一个很好的办法就是采集了.一般来说,采集一个网页上的内容,只需要用CURL获取源代码,然后用正则表达式取出需要的内容就可以,不过如果这样载入一个淘宝的页 ...

  8. 关于高性能Web服务的一点思考

    下面这些概念对于专业做性能测试的会比较熟悉,但是对于开发人员不一定都那么清楚. 并发用户数: 某一时刻同时请求服务器的用户总数,通常我们也称并发数,并发连接数等. 吞吐率:对于web服务器来说就是每秒 ...

  9. POJ 1925 Spiderman

    Spiderman Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5858 Accepted: 1143 Description ...

  10. h5交互元素details标签

    details是h5新增的交互元素,details与 summary 标签配合使用可以为 details 定义标题.默认情况下,不显示 details 标记中的内容.当用户点击标题时,会显示出 det ...