博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最长公共子序列 POJ1458
阅读量:4216 次
发布时间:2019-05-26

本文共 743 字,大约阅读时间需要 2 分钟。

DP
1、确定状态 maxLen[i][j]表示 a的左侧i个字符与b的左侧j个字符最长子序列长度

2、边界条件(初始)maxLen[i][0] = maxLen[0][j] = 0;
3、状态转移
4、复杂度 = 状态数*计算每个状态所需时间 

#include
#include
#define MAX(a,b) ((a) > (b) ? (a):(b))char a[1001],b[10001];int maxLen[1001][1001];int main() { while(scanf("%s%s",a,b) != EOF){ int len1 = strlen(a); int len2 = strlen(b); int len = MAX(len1,len2); //printf("%d",len); for(int i = 0; i < len; ++i){ maxLen[i][0] = 0; maxLen[0][i] = 0; } for(int i = 1; i <= len1; ++i){ for(int j = 1; j <= len2; ++j){ if(a[i-1] == b[j-1]){ maxLen[i][j] = maxLen[i-1][j-1] + 1; } else{ maxLen[i][j] = MAX(maxLen[i-1][j],maxLen[i][j-1]); } } } printf("%d\n",maxLen[len1][len2]); } return 0; }

转载地址:http://sqimi.baihongyu.com/

你可能感兴趣的文章
定时器的使用
查看>>
为Android加入busybox工具
查看>>
使用技巧busybox
查看>>
如何查看与/dev/input目录下的event对应的设备
查看>>
bootloader-bootable解析
查看>>
bootloader (LK)&&android lk bootloader中相关修改指南
查看>>
SD卡驱动分析--基于高通平台
查看>>
SD Card 驱动流程分析
查看>>
Linux之debugfs介绍
查看>>
关于sd卡中一些概念的理解
查看>>
sd卡驱动分析之相关硬件操作和总结
查看>>
好的播文
查看>>
linux dd命令解析
查看>>
linux find命令详解
查看>>
S3C2440上touchscreen触摸屏驱动
查看>>
USB History Viewing
查看>>
怎样做可靠的分布式锁,Redlock 真的可行么?
查看>>
[图文] Seata AT 模式分布式事务源码分析
查看>>
pm 源码分析
查看>>
Sending the User to Another App
查看>>