1458 poj--zoj 1733---------------动态规划DP
2014-08-12 18:12
232 查看
zoj 1733
#include <iostream>
#include <string.h>
#define N 1005
using namespace std ;
char s1
,s2
;
int dp
;
int max(int a,int b)
{ return a>b ? a : b ; }
void f(int n,int m)
{
int i,j;
for (i=0; i<n; i++) dp[i][0]=0;
for (j=0; j<m; j++) dp[0][j]=0;
for (i=1;i<=n; i++)
for (j=1;j<=m; j++)
if (s1[i-1]==s2[j-1]) dp[i][j]=dp[i-1][j-1]+1;
else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
int main()
{
int i,j,m,n;
while ( cin>>s1>>s2 )
{ n=strlen(s1);
m=strlen(s2);
f(n,m);
cout << dp
[m] << endl ;
}
}
#include <iostream>
#include <string.h>
#define N 1005
using namespace std ;
char s1
,s2
;
int dp
;
int max(int a,int b)
{ return a>b ? a : b ; }
void f(int n,int m)
{
int i,j;
for (i=0; i<n; i++) dp[i][0]=0;
for (j=0; j<m; j++) dp[0][j]=0;
for (i=1;i<=n; i++)
for (j=1;j<=m; j++)
if (s1[i-1]==s2[j-1]) dp[i][j]=dp[i-1][j-1]+1;
else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
int main()
{
int i,j,m,n;
while ( cin>>s1>>s2 )
{ n=strlen(s1);
m=strlen(s2);
f(n,m);
cout << dp
[m] << endl ;
}
}
相关文章推荐
- 1458 poj--zoj 1733---------------记忆式搜索
- zoj 1733 || poj 1458 Common Subsequence(最长公共子序列)
- POJ 1458 Common Subsequence (zoj 1733 ) LCS
- 1458 poj--zoj 1733---------------递归
- POJ 1458 Common Subsequence (zoj 1733 ) LCS
- ZOJ 1406 POJ 1251 Jungle Roads 丛林中的道路,最小生成树,Kruskal算法
- POJ 1961 Period || HDU 1358 Period || ZOJ 2177 Period
- zoj 2192 || poj 2584 T-Shirt Gumbo
- zoj 1149 && hdu 1059 && poj 1014 Dividing
- poj 1733 Parity game
- zoj 2386 || poj 2299 Ultra-QuickSort
- POJ 1932 XYZZY (ZOJ 1935)SPFA+floyd
- POJ 1458 Common Subsequence
- POJ 2777 && ZOJ 1610 &&HDU 1698 --线段树--区间更新
- poj 1458 Common Subsequence
- poj1458
- zoj 1789||poj 1611 The Suspects(并查集,简单)
- zoj 1733(LCS
- poj 1733 Parity game(带权并查集+离散化)
- zoj 1508 poj 1201 Intervals