HDU 1159】的更多相关文章

HDU 1159 题目大意:给定两个字符串,求他们的最长公共子序列的长度 解题思路:设字符串 a = "a0,a1,a2,a3...am-1"(长度为m), b = "b0, b1, b2, b3 ... bn-1"(长度为n), 它们的最长公共子序列为c = "c0, c1, c2, ... ck-1",长度为k, dp[i][j]定义为子串 "a0,a1,...,ai-1" 和 子串"b0,b1,...,bj-1…
题意:输入一个字符串,至少插入几个字符可以变成回文串(左右对称的字符串) 分析:f[x][y]代表x与y个字符间至少插入f[x][y]个字符可以变成回文串,可以利用动态规划的思想,求解 状态转化方程: f[x][y]=0  初始化 f[x][y]=f[x+1][y-1]     s[x]==s[y]时 f[x][y]=MIN ( f[x+1][y] , f[x][y-1] )+1    s[x] != s[y]时 代码展示 一开始没有将算的的数据存放到数组中,使得有些数据重复计算好多次,TLE…
HDU 1159 Common Subsequence 最长公共子序列 题意 给你两个字符串,求出这两个字符串的最长公共子序列,这里的子序列不一定是连续的,只要满足前后关系就可以. 解题思路 这个当然要使用动态规划了. 这里\(dp[i][j]\)代表第一个串的前\(i\)个字符和第二个串的前\(j\)个字符中最长的公共子序列的最长长度,递推关系如下: \[ d[i][j]= \begin{cases} dp[i-1][j-1]+1 & \text{if} &str1[i]==str2[j…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18201    Accepted Submission(s): 7697 Problem Description A subsequence of…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 题意: 求最长公共子序列. 题解: (LCS模板题) 表示状态: dp[i][j] = max len of LCS a串匹配到第i位,b串匹配到第j位,此时的最长公共子序列长度. 如何转移: 首先,一个明显的决策是,如果a[i] == b[j],那么此一定要匹配.(贪心) 所以分两种情况: (1)a[i] == b[j]:dp[i][j] = dp[i-1][j-1] + 1 (2)a[i]…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 39559    Accepted Submission(s): 18178 Problem Description A subsequence of a given sequence is the given sequence with some el…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37551    Accepted Submission(s): 17206 Problem Description A subsequence of…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25416    Accepted Submission(s): 11276 Problem Description A subsequence of…
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1159 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28195#problem/A Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17621…
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 47676    Accepted Submission(s): 21890 Problem Description A subsequence of…
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 题解 #include<iostream> #include<cstring> using namespace std; ],B[]; //存放字符串 ][]; //存放到字符串a第 i+1个字符,字符串b第 j+1个字符为止的最大长度公共子序列的长度 int main(){ while(~scanf("%s%s",A,B)){ int alen=strlen(A…
thanks prof. Abhiram Ranade for his vedio on Longest Common Subsequence 's back track search view in lecture 19, nice explanation indeed. // back track, recursive, 390 ms, O(m*n) memory #include <cstdio> #include <vector> #include <string&g…
试着拍了一道模板题 dp开了500,开100会超时..... string类型中间有空格会判为结束 #include<algorithm> -->min,max函数的头文件 #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cstring> using namespace std; int main() { stri…
题目链接 基础的最长公共子序列 #include <bits/stdc++.h> using namespace std; ; char c[maxn],d[maxn]; int dp[maxn][maxn]; int main() { while(scanf("%s%s",c,d)!=EOF) { memset(dp,,sizeof(dp)); int n=strlen(c); int m=strlen(d); ;i<n;i++) ;j<m;j++) if(c…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18765    Accepted Submission(s): 7946 Problem Description A subsequence of a given sequence is the given sequence with some ele…
Description 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…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 18387    Accepted Submission(s): 7769 Problem Description A subsequence of a given sequence is the given sequence with some el…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 24489    Accepted Submission(s): 10823 Problem Description A subsequence of a given sequence is the given sequence with some e…
题目链接:https://vjudge.net/contest/124428#problem/A 题目大意:给出两个字符串,求其最长公共子序列的长度. 最长公共子序列算法详解:https://blog.csdn.net/hrn1216/article/details/51534607     (其中的图解很详细)   根据图解理解下面代码 #include<cstdio> #include <string> #include<cstring> #include<i…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 48378    Accepted Submission(s): 22242 Problem Description A subsequence of a given sequence is the given sequence with some e…
Problem Description 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 stri…
http://blog.csdn.net/a_eagle/article/details/7213236 公共序列可以用一个二维数组dp[i][j]保存每个点时的最大数字,本质就是一个双向比较. dp[i][j] = dp[i-1][j-1]+1;(a[i]==b[j]) dp[i][j] = max(dp[i][j-1],dp[i-1][j]);(a[i]!=b[j]) 处理字符串时可以用sf("%s",a+1)来将字符串从1开始保存,这时strlen()也要用a+1 #includ…
最长公共子序列.状态转移方程见代码. #include <iostream> #include <cstdio> #include <cstring> using namespace std; char s1[1005],s2[1005]; int dp[1005][1005]; int main() { while(scanf("%s",s1+1)!=EOF) { scanf("%s",s2+1); memset(dp,0,si…
题意:给定两行字符串,求最长公共子序列. 析:dp[i][j] 表示第一串以 i 个结尾和第二个串以 j 个结尾,最长公共子序列,剩下的就简单了. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37725    Accepted Submission(s): 17301 Problem Description A subsequence of a given sequence is the given sequence with some el…
题目链接 Problem Description 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…
2017-08-06 15:41:04 writer:pprp 刚开始学dp,集训的讲的很难,但是还是得自己看,从简单到难,慢慢来(如果哪里有错误欢迎各位大佬指正) 题意如下: 给两个字符串,找到其中大的公共子序列,每个样例输出一个数: 最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为: 子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列: 也就是说…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 39661    Accepted Submission(s): 18228 Problem Description A subsequence of a given sequence is the given sequence with some el…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 34819 Accepted Submission(s): 15901 Problem Description A subsequence of a given sequence is the given sequence with some element…
Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32693    Accepted Submission(s): 14786 Problem Description A subsequence of a given sequence is the given sequence with some el…