HDU1159最长公共字串
来源:互联网 发布:自动充电软件 编辑:程序博客网 时间:2024/05/01 22:09
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159
辅助空间变化示意图
a
b
c
f
b
c
a
1
1
1
1
1
1
b
1
2
2
2
2
2
f
1
2
2
3
3
3
c
1
2
3
3
3
4
a
1
2
3
3
3
4
b
1
2
3
3
4
4
由于f(i,j)只和f(i-1,j-1), f(i-1,j)和f(i,j-1)有关, 而在计算f(i,j)时, 只要选择一个合适的顺序, 就可以保证这三项都已经计算出来了, 这样就可以计算出f(i,j). 这样一直推到f(len(a),len(b))就得到所要求的解了.
if(a[i]==b[j])
dp[i][j]=dp[i-1][j-1]+1;
else
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);p
#include <iostream>#include <cstring>using namespace std;const int maxn = 1000;char a[maxn],b[maxn];int dp[maxn][maxn];int main(){ int n,m; while(cin>>a>>b) { n=strlen(a); m=strlen(b); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(a[i-1]==b[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } cout<<dp[n][m]<<endl; } return 0;}
0 0
- HDU1159最长公共字串
- HDU1159 最长公共子序列
- 最长公共子序列(hdu1159)
- HDU1159 最长公共子序列
- hdu1159(最长公共子序列)
- hdu1159 最长公共子序列
- HDU1159最长公共子序列
- HDU1159最长公共子序列
- 最长公共字串
- 最长公共字串
- 最长公共字串
- 最长公共字串
- 最长公共字串
- OJ最长公共字串
- 最长公共字串
- 56 最长公共字串
- LCS 最长公共字串
- java最长公共字串
- 自定义View--Label + TextField
- 360网站卫士每秒拦截6.8万次黑客攻击
- Linux/UNIX线程(1)
- printf的打印格式
- 常用正则表达式
- HDU1159最长公共字串
- java怎样把反斜杠"\"转成正斜杠"/"?
- java的运算符和strictfp关键字
- Objective-C对象的申请空间与初始化
- packageinfo,resolveInfo,applicationInfo 等区别
- 不同ios系统下mainscreen的applicationFrame和bounds值测试
- BOOST_PP_SEQ_ENUM宏
- C++ 调试
- vc6 在win7 0x64 下的bug修复