hdu1159 最大公共子序列
来源:互联网 发布:apkpure软件下载 编辑:程序博客网 时间:2024/04/26 20:00
题意就不用多说了 这道题就是求两个串的最大公共子序列 注意与最大公共子串的区别
最长公共子序列的结构
最长公共子序列的结构有如下表示:
设序列X=<x1, x2, …, xm>和Y=<y1, y2, …, yn>的一个最长公共子序列Z=<z1, z2, …, zk>,则:
1> 若 xm=yn,则 zk=xm=yn,且Zk-1是Xm-1和Yn-1的最长公共子序列;
2> 若 xm≠yn且 zk≠xm ,则 Z是 Xm-1和 Y的最长公共子序列;
3> 若 xm≠yn且 zk≠yn ,则 Z是 X和 Yn-1的最长公共子序列;
其中Xm-1=<x1, x2, …, xm-1>,Yn-1=<y1, y2, …, yn-1>,Zk-1=<z1, z2, …, zk-1>。
#include<stdio.h>#include<string.h>#include<iostream>using namespace std;char str1[1100],str2[1100];int dp[1100][1100];int max(int a,int b){ return a>b?a:b;}int main(){ int i,j; while(~scanf("%s%s",str1,str2)) { int len1=strlen(str1); int len2=strlen(str2); memset(dp,0,sizeof(dp)); int Max=0; for(i=1;i<=len1;i++) { for(j=1;j<=len2;j++) { if(str1[i-1]==str2[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } printf("%d\n",dp[len1][len2]); } return 0;}
0 0
- hdu1159 最大公共子序列
- hdu1159 最大公共子序列(lcs) hdu 1080
- HDU1159 最长公共子序列
- 最长公共子序列(hdu1159)
- HDU1159 最长公共子序列
- hdu1159(最长公共子序列)
- hdu1159 最长公共子序列
- HDU1159最长公共子序列
- HDU1159最长公共子序列
- Common Subsequence hdu1159 最长公共子序列
- HDU1159-朴素的最长公共子序列
- LCS最长公共子序列HDU1159
- 最长公共子序列:HDU1159 Common Subsequence
- HDU1159 Common Subsequence 最长公共子序列
- HDU1159 &&POJ1458最长公共子序列(字符串)
- hdu1159 LCS最长公共子序列
- 最长公共子序列(1)--hdu1159(模板)
- hdu1159(dp)最长公共子序列
- Java线程池的详细介绍
- jquery的each()详细介绍
- 深入浅出Docker(二):Docker命令行探秘
- Html.AntiForgeryToken() 防止CSRF攻击 的AJaX应用
- [C++ Primer]第一章 快速入门
- hdu1159 最大公共子序列
- jquery easyui 表单验证
- A record for OF installation
- 二维码生成策略之前端生成
- forward与redirect的区别
- 静好
- C/C++随机数生成方法
- 深入浅出Docker(三):Docker开源之路
- Dynamically Loaded (DL)