Common Subsequence(dp)HDU 1159
来源:互联网 发布:阿里云深圳机房ip地址 编辑:程序博客网 时间:2024/05/29 19:11
题目大意:求两个字符串的最大公共子序列有多长
思路:动态规划问题,主要是找到变化的核心式子。
if(z1[i-1]==z2[j-1]){
dp[i][j]=dp[i-1][j-1]+1;}
else dp[i][j]=dp[i-1][j]>dp[i][j-1]?dp[i-1][j]:dp[i][j-1];
相等的时候就是斜上方的连续数+1
不然就是上方或者左方的最大值
D A B C 3 1 2
0 0 0 0 0 0 0 0
A 0 0 1 1 1 1 1 1
B 0 0 1 2 2 2 2 2
C 0 0 1 2 3 3 3 3
1 0 0 1 2 3 3 4 4
2 0 0 1 2 3 3 4 5
3 0 0 1 2 3 4 4 5
最后计算出的值就是5
#include<stdio.h>#include<string.h>char z1[1005];char z2[1005];int dp[1005][1005];int main(void){while(scanf("%s%s",&z1,&z2)!=EOF){int i,j;int n=strlen(z1);int m=strlen(z2);for(i=0;i<=m;i++) dp[0][i]=0;//初始化很重要for(i=0;i<=n;i++) dp[i][0]=0;for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(z1[i-1]==z2[j-1]){dp[i][j]=dp[i-1][j-1]+1;}else dp[i][j]=dp[i-1][j]>dp[i][j-1]?dp[i-1][j]:dp[i][j-1];}}printf("%d\n",dp[n][m]);}return 0;}
0 0
- hdu 1159 Common Subsequence #DP
- hdu 1159 Common Subsequence (dp)
- HDU--1159 -- Common Subsequence [DP]
- hdu 1159 Common Subsequence(dp)
- HDU 1159 Common Subsequence (dp)
- Common Subsequence(dp)HDU 1159
- Common Subsequence HDU dp
- HDU 1159 Common Subsequence(还是DP)
- hdu 题目1159 Common Subsequence(DP)
- HDU 1159 Common Subsequence(DP,LCS)
- hdu 1159 Common Subsequence(LCS,dp)
- HDU 1159 Common Subsequence(dp LCS)
- HDU 1159 Common Subsequence (备忘录DP)
- hdu 1159 Common Subsequence(dp)
- hdu 1159 Common Subsequence (dp)
- Hdu oj 1159 Common Subsequence(dp)
- HDU 1159 Common Subsequence LCS+DP .
- HDU 1159 Common Subsequence(基础dp)
- linux目录权限与文件权限的区别
- CCF201412-2 Z字形扫描(解法二)(100分)
- angular js 入门2 $watch 监听事件
- 十大编程算法助程序员走上高手之路
- 【Android】退出多个Activity方法(二)
- Common Subsequence(dp)HDU 1159
- pug模板初体验
- MIT 线性代数(34—35)读书笔记
- 基于proteus的51单片机仿真实例一、说明
- 试试Linux下的ip命令,ifconfig已经过时了
- 服务与活动之间如何产生联系
- JSP(7)关于刷新持续发送请求的处理
- Java 实例
- VMware-tools安装