动态规划之单调递增最长子序列
来源:互联网 发布:深圳中广核设计院 知乎 编辑:程序博客网 时间:2024/06/03 16:00
单调递增单调递减都是一样的思想,在oJ上看到的题目。自己想出来的,感觉蛮好。
求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
我的第一思路就是动态规划求,后来看到还有一麻烦的思路就是求公共最长子串,和26个英文字母的顺序。。。这思路只适用这题,不适用其他的,比如后来遇到的导弹拦截问题,矩形的嵌套问题,都是一样的思路。
首先是找最优子结构,开始考虑简单了,只考虑了相邻的字符,后来发现不行。
后来划了几下才想到的,当前的字符和前面所有字符比较,找出前面所有字符中小于当前字符的,在找出它们当中的最大值,再将这个最大值加一,就是当前位置的最长递增子串。(= =语文不大好,应该看得懂吧)
贴代码:
由于是oj上直接提交的代码,没什么注释。。
#include<iostream>#include<string>#define Max 10005using namespace std;//单调递增最长子序列int a[Max];string data;int main(){int n;cin>>n;cin.clear();cin.sync();while(n--){int i,max=1,j;cin>>data;for(i=0;i<=data.length();i++)a[i]=1;for(i=2;i<=data.length();i++){for(j=0;j<i-1;j++)if(data[i-1]>data[j]){int t=a[j+1]+1;a[i]=a[i]>t?a[i]:t;}max=max>a[i]?max:a[i];}cout<<max<<endl;}return 0;}
0 0
- 动态规划:最长单调递增子序列
- 动态规划--最长单调递增子序列
- 【动态规划】单调递增最长子序列
- 最长单调递增子序列--动态规划
- 动态规划之单调递增最长子序列
- 动态规划之-----单调递增最长子序列(nyoj17)
- NYOJ - 17 - 单调递增最长子序列(动态规划--LIS--单调递增最长子序列)
- 动态规划之最长递增子序列
- 动态规划之最长递增子序列
- 动态规划之最长递增子序列
- 动态规划之最长递增子序列
- 动态规划之最长递增子序列
- 动态规划之最长递增子序列
- 动态规划之最长递增子序列
- 动态规划之最长递增子序列
- 动态规划题目一:最长单调递增子序列
- nyoj17单调递增最长子序列--动态规划-初步
- 动态规划-单调递增最长子序列(三)
- ft2build.h:没有那个文件或目录
- Amazon推出了其桌面即服务
- ThinkPHP模板
- ALAssetsLibrary详解
- Managed Extensibility Framework (MEF)
- 动态规划之单调递增最长子序列
- java基本优化方法总结
- 【全】Android官网MediaPlayer章节翻译与总结(上)
- EBS查找功能所在的菜单sql
- C++获取系统时间的方式
- android user模式下如何替换odex文件
- 毕业论文抄袭率过高不着急,修改过关技巧曝光
- 重新配置php+mysql_nginx
- _WIN32_WINNT 与 LPFN_DISCONNECTEX