hdu 1159 Common Subsequence (dp)
2012-10-28 17:56
375 查看
点击打开链接
题目意思:
简单DP应用。。
给你两个字符串看看有依次有多少字符相同,
Dp【i】【j】表示str_1的前i个字符与str_2的前J个字符有dp[i][j]个相同的。
dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
#include"stdio.h"
#include"string.h"
#define N 1001
int dp
;
int MAX(int a,int b)
{
if(a>b)return a;
return b;
}
int main()
{
int len_1,len_2,i,j;
char str_1
,str_2
;
while(scanf("%s %s",str_1,str_2)!=-1)
{
len_1=strlen(str_1);
len_2=strlen(str_2);
memset(dp,0,sizeof(dp));
for(i=1;i<=len_1;i++)
{
for(j=1;j<=len_2;j++)
if(str_1[i-1]==str_2[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[len_1][len_2]);
}
return 0;
}
题目意思:
简单DP应用。。
给你两个字符串看看有依次有多少字符相同,
Dp【i】【j】表示str_1的前i个字符与str_2的前J个字符有dp[i][j]个相同的。
dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
#include"stdio.h"
#include"string.h"
#define N 1001
int dp
;
int MAX(int a,int b)
{
if(a>b)return a;
return b;
}
int main()
{
int len_1,len_2,i,j;
char str_1
,str_2
;
while(scanf("%s %s",str_1,str_2)!=-1)
{
len_1=strlen(str_1);
len_2=strlen(str_2);
memset(dp,0,sizeof(dp));
for(i=1;i<=len_1;i++)
{
for(j=1;j<=len_2;j++)
if(str_1[i-1]==str_2[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[len_1][len_2]);
}
return 0;
}
相关文章推荐
- HDU 1159 Common Subsequence(最长公共子序列)dp
- HDU 1159 Common Subsequence【dp+最长公共子序列】
- hdu1159 Common Subsequence--DP
- hdu 1159 Common Subsequence(最长公共子序列 DP)
- HDU 1159——Common Subsequence(DP)
- HDU 1159 Common Subsequence (求两个串的最长公共子序列 dp)
- HDU 1159 Common Subsequence LCS+DP .
- Common Subsequence(dp)HDU 1159
- HDU 1159 Common Subsequence(DP最长公共子序列)
- HDU 1159 Common Subsequence(DP,LCS)
- 【dp】HDU 1159 Common Subsequence
- HDU 1159 Common Subsequence(dp最大公共子串)
- hdu 1159 Common Subsequence(dp)
- 【HDU】1159 Common Subsequence(DP、最长公共子序列)
- dp Problem B:Common Subsequence(HDU 1159)
- 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)