hdu 1159:Common Subsequence(动态规划)
Common Subsequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 18765 Accepted Submission(s): 7946
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.
programming contest
abcd mnp
2
0
#include <iostream> using namespace std;
int dp[][];
int main()
{
//dp[i][j]代表着a取前i个字符和b取前j个字符时的最长公共子序列的大小
char a[],b[];
while(cin>>a>>b){
int i,j;
int al,bl;
for(i=;a[i]!='\0';i++); //计算a、b字符串长度
for(j=;b[j]!='\0';j++);
al=i;bl=j; for(i=;i<=al;i++) //dp[][]初始化
dp[i][]=;
for(i=;i<=bl;i++)
dp[][i]=; for(i=;i<=al;i++) //计算dp[][]
for(j=;j<=bl;j++){
if(a[i-]==b[j-])
dp[i][j]=dp[i-][j-]+;
else
dp[i][j] = dp[i-][j] > dp[i][j-] ? dp[i-][j] : dp[i][j-];
} cout<<dp[al][bl]<<endl;
}
return ;
}
#include <stdio.h>
#include <stdlib.h>
int dp[][];
int main()
{
char a[],b[];
while(scanf("%s%s",a,b)!=EOF){
int i,j;
int al,bl;
for(i=;a[i]!='\0';i++);
for(j=;b[j]!='\0';j++);
al=i;bl=j;
for(i=;i<=al;i++)
dp[i][]=;
for(j=;j<=bl;j++)
dp[][j]=;
for(i=;i<=al;i++)
for(j=;j<=bl;j++){
if(a[i-]==b[j-])
dp[i][j] = dp[i-][j-]+;
else
dp[i][j] = dp[i-][j] > dp[i][j-] ? dp[i-][j] : dp[i][j-];
}
printf("%d\n",dp[al][bl]);
}
return ;
}
Freecode : www.cnblogs.com/yym2013
hdu 1159:Common Subsequence(动态规划)的更多相关文章
- HDU 1159 Common Subsequence 动态规划
2017-08-06 15:41:04 writer:pprp 刚开始学dp,集训的讲的很难,但是还是得自己看,从简单到难,慢慢来(如果哪里有错误欢迎各位大佬指正) 题意如下: 给两个字符串,找到其中 ...
- HDU 1159 Common Subsequence 最长公共子序列
HDU 1159 Common Subsequence 最长公共子序列 题意 给你两个字符串,求出这两个字符串的最长公共子序列,这里的子序列不一定是连续的,只要满足前后关系就可以. 解题思路 这个当然 ...
- HDU 1159 Common Subsequence
HDU 1159 题目大意:给定两个字符串,求他们的最长公共子序列的长度 解题思路:设字符串 a = "a0,a1,a2,a3...am-1"(长度为m), b = "b ...
- HDU 1159 Common Subsequence 公共子序列 DP 水题重温
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Jav ...
- hdu 1159 Common Subsequence(最长公共子序列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Jav ...
- hdu 1159 Common Subsequence(最长公共子序列 DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Jav ...
- HDU 1159 Common Subsequence(裸LCS)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Jav ...
- HDU 1159 Common Subsequence (动态规划、最长公共子序列)
Common Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- HDU 1159.Common Subsequence【动态规划DP】
Problem Description A subsequence of a given sequence is the given sequence with some elements (poss ...
随机推荐
- P问题、NP问题、NPC问题、NP难问题的概念
P问题.NP问题.NPC问题.NP难问题的概念 离入职尚有几天时间,闲来无事,将大家常见却又很容易搞糊涂的几个概念进行整理,希望对大家有所帮助.你会经常看到网上出现“这怎么做,这不是NP问题吗”.“这 ...
- python 与 mysql
1.开发环境: 1)CLion-2016.1.3 C/C++ 与 Python 混合编程 IDE,先安装好以下 2) 3) 编译器再关联 2)tdm-gcc-4.8.1-3 C/C++ 编译器 3)W ...
- C语言之参数传递
学了四年的计算机,一直让自己比较苦恼的问题是C语言的参数传递问题,之所以说是苦恼,是因为在某年的一个学期,不幸接触到数据结构,光一个链表就把自己弄得死去活来的,而且自已一直就楞以为在操作的过程中,传递 ...
- Visual Studio Online Integrations-Collaboration
原文:http://www.v ...
- C# 汉字转拼音
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Comm ...
- C语言中的struct和typedef struct<转载>
原文:http://www.nowamagic.net/librarys/veda/detail/1785 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数 ...
- HDOJ 2089 不要62
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Insertion Sort List
对链表进行插入排序,比对数组排序麻烦一点. ListNode *insertSortList(ListNode *head) { ListNode dummy(-); for (ListNode *c ...
- 反正切函数求圆周率 atan
#define PI atan(1.0)*4 原理:tan ∏/4=1; atan2: 返回给定的 X 及 Y 坐标值的反正切值.反正切的角度值等于 X 轴正方向与通过原点和给定坐标点 (Y坐标, X ...
- 【OpenStack】OpenStack系列2之KeyStone详解
源码下载.依赖安装 参考:http://www.oschina.net/question/565065_66271 https://github.com/yongluo2013/osf-opensta ...