ACM模板——最长公共上升子序列 LCIS
2016-08-05 13:11
363 查看
最长公共上升子序列 LCIS
/// LCIS 最长公共上升子序列
namespace LCIS
{
const int MAXLEN_A = 500;
const int MAXLEN_B = 500;
int dp[MAXLEN_A+5][MAXLEN_B+5];
int deal(const char* a,const char* b)
{
int lena=strlen(a);
int lenb=strlen(b);
for(int i=1;i<=lenb;i++)
{
int k=0;
for(int j=1;j<=lena;j++)
{
dp[i][j]=dp[i-1][j];/// when b[i-1] != a[j-1]
if(b[i-1]>a[j-1]) k=max(k,dp[i-1][j]);
else if(b[i-1]==a[j-1]) dp[i][j]=k+1;
}
}
int ans=0;
for(int i=1;i<=lena;i++) ans=max(ans,dp[lenb][i]);
return ans;
}
}
//End of namespace LCIS
/// LCIS 最长公共上升子序列
namespace LCIS
{
const int MAXLEN_A = 500;
const int MAXLEN_B = 500;
int dp[MAXLEN_A+5][MAXLEN_B+5];
int deal(const char* a,const char* b)
{
int lena=strlen(a);
int lenb=strlen(b);
for(int i=1;i<=lenb;i++)
{
int k=0;
for(int j=1;j<=lena;j++)
{
dp[i][j]=dp[i-1][j];/// when b[i-1] != a[j-1]
if(b[i-1]>a[j-1]) k=max(k,dp[i-1][j]);
else if(b[i-1]==a[j-1]) dp[i][j]=k+1;
}
}
int ans=0;
for(int i=1;i<=lena;i++) ans=max(ans,dp[lenb][i]);
return ans;
}
}
//End of namespace LCIS
相关文章推荐
- CocoaPods的安装使用和常见问题
- Easyui_datebox验证-开始日期小于结束日期
- 线上系统报ERR Connection timed out异常解决过程
- Hdu 4309Seikimatsu Occult Tonneru【最大流Dinic+暴力枚举Dfs+建图】人生难免磕磕碰碰
- JSP 基础之 JSTL <c:forEach>用法
- schema://host[:port#]/path/.../[?query-string][#anchor]
- MySql学习笔记
- Python学习笔记(一)
- Get请求Demo
- HDU 1075 字典树 树搜索 逆路径输出单词
- block(块级元素)和 inline(内联元素) 的区别
- ACM模板——最长公共子序列 LCS
- ab压力测试报错: apr_socket_recv: Connection reset by peer (104)
- Oracle学习笔记——点滴汇总
- python 深入理解 赋值、引用、拷贝、作用域
- java中的try-catch-finally的处理流程介绍
- Linux学习笔记——基于鸟哥的Linux私房菜
- 浅析B/S架构数据库连接方式
- 毕向东Java视频学习笔记【Day15 字符串+StringBuffer+StringBuilder类基础】
- ByteBuffer的Put和Get的用法和要注意的细节