poj 3903 Stock Exchange
2012-08-17 20:02
197 查看
//和2533是同一类的题目,都是简单的LIS题目,这题用二分+DP比较好,因为数据比较大!容易超时! #include <iostream> using namespace std; long num[100001], tmp[100001]; int main() { int n, i, j, len, left, right, mid; while (cin >> n){ for (i = 0; i < n; i++){ cin >> num[i]; } memset(tmp, 0, sizeof(tmp)); len = 0; tmp[0] = -1; for (i = 0; i < n; i++){ if (num[i] > tmp[len]){ tmp[++len] = num[i]; } else{ left = 1, right = len; while (left <= right){ mid = (left + right) / 2; if (num[i] > tmp[mid]){ left = mid + 1; } else{ right = mid - 1; } } tmp[left] = num[i]; } } cout << len << endl; } system("pause"); }
相关文章推荐
- POJ 3903 Stock Exchange
- poj 3903-Stock Exchange最大上升子序(dp)
- poj 3903 最长上升子序列 Stock Exchange
- 【POJ 3903】Stock Exchange
- poj 3903 Stock Exchange(最长上升子序列,模版题)
- POJ 3903 —— Stock Exchange 最长上升子序列
- poj 3903 Stock Exchange (最长上升子序列)
- POJ 3903 Stock Exchange
- POJ 3903 Stock Exchange 解题心得
- POJ - 3903 Stock Exchange(LIS最长上升子序列问题)
- POJ 3903 Stock Exchange 最长上升子序列
- Poj 3903 Stock Exchange(LIS)
- poj 3903 Stock Exchange
- POJ 题目3903 Stock Exchange(LIC)
- POJ 3903 Stock Exchange
- POJ - 3903-Stock Exchange(LIS二分模板题)
- Poj 3903 Stock Exchange(LIS)
- poj 3903 Stock Exchange
- POJ 3903 Stock Exchange (LIS:最长上升子序列)
- POJ 3903 Stock Exchange【LIS 二分查找】