poj 1836 2192 2593 动态规划

1836题意:求最长的先升后降序列

分析:

d1[i]记录a[1…i]的递增子序列长度,

d2[i]记录a[n…i]的递增子序列长度。

 

 

2593题意:求数组的最大两个子串的和

分析:前后分别执行一遍最大子串和 

将1到i的最大和保存在Left[i]中,将n到i的最大和保存在Right[i]中

枚举分割点i Left[i]+Right[i+1]的最大值即为所求

 

 

2192题意:给三个字符串s1,s2,s3 问能不能用s1 s2的字母组合成s3 其中s1 s2中的字母相对顺序不能改变

例如cat tree 可以组成tcraete 但不能组成cttaree

分析:dp(i,j)表示当前处理到s1[i] s2[j]处,

dp(i,j)->dp(i+1,j)   s1[i]==s3[i+j]
dp(i,j)->dp(i,j+1)   s2[j]==s3[i+j]

 

 

 

posted @ 2013-06-19 12:15  心向往之  阅读(136)  评论(0编辑  收藏  举报