poj 1631 Bridging signals
2012-08-18 10:04
141 查看
//求最长递增子序列,和题目2533、1887、3903等是同一类型的题目!做法差不多! #include <iostream> #include <cstdio> #include <memory.h> using namespace std; const int MAX = 400010; int single[MAX], tmp[MAX]; int main() { int tc, i, n, left, right, mid, ans; scanf("%d", &tc); while (tc--){ scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &single[i]);//原来用scanf真的比cin要快很多,尤其是在多数据输入的情况之下,一个用时454ms,一个才94ms! ans = 0; tmp[0] = -1; for (i = 0; i < n; i++){ if (single[i] > tmp[ans]){ tmp[++ans] = single[i]; } else{ left = 1, right = ans; while (left <= right){ mid = (left + right) / 2; if (single[i] > tmp[mid]){ left = mid + 1; } else{ right = mid - 1; } } tmp[left] = single[i]; } } printf("%d\n", ans); } system("pause"); }
相关文章推荐
- POJ1631 - 谈解最长非降子序列的又一思路...
- poj 1631 LIS nlogn算法
- poj 1631 || hdu 1950 Bridging signals(动态规划:LIS)
- poj 1631 Bridging signals
- poj 1631 最多能有多少条不交叉的线 最大非降子序列 (LIS)
- POJ 1631 Bridging signals DP(最长上升子序列)
- poj 1631 nologn LIS
- POJ 1631 Bridging signals
- POJ 1631 Bridging signals(LIS)
- POJ_1631_Bridging Signals_机智!/线段树
- poj 1631 简单的LIS问题
- POJ1631 最长上升子序列的新做法0(n)
- POJ 1631 Bridging signals
- POJ 1631 Bridging signals
- poj 1631
- POJ 1631 Bridging signals
- 刷题——Bridging signals POJ - 1631
- poj 1631(Bridging signals LIS)nlogn
- zoj 1986 || poj 1631 Bridging Signals(最长上升子序列N*logN)
- POJ 1631 Bridging signals(优化的最长子序列)