POJ 3903 Stock Exchange
2015-08-21 12:21
204 查看
原题链接:
http://poj.org/problem?id=3903题目大意:
找一个最大递增子序列思路:
由于这题数据量较大,如果按照递增子序列的一般写法,会超时。所以这里要在筛选dp的时候做出优化—二分查找代码如下:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int tp[100010]; int dp[100010];//以i位置为结尾的最后一项的值 int main() { int L; while( scanf("%d",&L) != EOF ) { int i; for( i = 0; i < L; i++ ) scanf("%d",&tp[i]); dp[0] = tp[0]; int len = 1; for( i = 1; i < L; i++ ) { int left = 0, right = len - 1,mid; if( dp[len-1] < tp[i] ) dp[len++] = tp[i]; else { right = len - 1; while( left <= right ) { mid = ( left + right ) / 2; if( dp[mid] < tp[i] ) left = mid + 1;//找到的值小。继续向右方找 else right = mid - 1;//找到的值大。继续向左边找 } dp[left] = tp[i];//最终找到的值是在所有比当前值小的之中的最大值 } } printf("%d\n",len); } return 0; }
相关文章推荐
- MySQL 优化
- Google排名优化的几个影响因素
- DB2优化(简易版)
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中尾递归的使用、优化及编译器优化
- 优化Ruby脚本效率实例分享
- mysql -参数thread_cache_size优化方法 小结
- 详解mysql的limit经典用法及优化实例
- oracle数据库sql的优化总结
- C++二分查找在搜索引擎多文档求交的应用分析
- SQL优化经验总结
- SQL优化技巧指南
- SQL Server优化50法汇总
- C++快速排序的分析与优化详解
- 手把手教你如何优化C语言程序
- mysql 分页优化解析
- 非常不错的MySQL优化的8条经验
- C#二分查找算法实例分析
- 优化Node.js Web应用运行速度的10个技巧
- JavaScript学习笔记(十七)js 优化