PKU 1631 Bridging signals 二分查找
来源:互联网 发布:数据库系统工程师真题 编辑:程序博客网 时间:2024/06/04 19:40
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std ;int res[40005] ; //保存非线性递增队列的结果int n, resLen ;void Insert (int low, int high, int val){ int mid ; while (low <= high) { mid = (low+high) / 2 ; if (res[mid] <= val) low = mid + 1 ; else high = mid - 1; } res[low] = val ;}int main (){ int i, tcase, val; scanf ("%d", &tcase) ; while (tcase --) { resLen = -1 ; scanf ("%d", &n) ; for (i = 0; i < n; i ++) { scanf ("%d", &val) ; if (resLen == -1) //如果数组元素为空,将当前值入数组 { resLen ++ ; res[resLen] = val ; continue ; } else { if (val > res[resLen]) //如果当前值大于数组的栈顶元素, { //直接入数组,长度加1 resLen ++ ; res[resLen] = val ; continue ; } else if (val == res[resLen]) //如果出现相等 continue ; else //否则替换掉当前数组中比当前值大的元素 Insert (0, resLen, val) ; //二分 } } cout << resLen+1 << endl ; } return 0 ;}
- PKU 1631 Bridging signals 二分查找
- pku 1631 Bridging signals
- hdoj--1950--Bridging signals(二分查找+LIS)
- PKU的Bridging Signals
- PKU的Bridging Signals
- (二分+dp) poj 1631 Bridging signals
- POJ 1631 Bridging signals(LIS+二分)
- [动态规划]PKU Bridging signals
- POJ 1631 Bridging signals LIS(最长递增子序列) +nlogn算法+二分查找
- Poj 1631 Bridging signals(二分+DP 解 LIS)
- POJ 1631 Bridging signals(LIS 二分 快速方法)
- HDU 1950 POJ 1631 Bridging signals【LIS,二分优化】
- [POJ](1631)Bridging signals ---- LIS+O(nlogn)优化(二分)
- POJ 1631 Bridging signals
- Bridging signals POJ 1631
- poj 1631 Bridging signals
- poj 1631 Bridging signals
- poj 1631 Bridging signals
- Same named Variables In C++ inheritance
- Unix/Linux下的open函数(O_CREAT和O_EXCL)
- APIO-07Mobiles
- O_EXCL的作用
- HDOJ 2544 最短路
- PKU 1631 Bridging signals 二分查找
- UIViewController使用技巧!
- Linux的进程编程-之二-进程间通信(管道)
- 解决真机Logcat日志显示设置
- jQuery.mobile使用(一)
- Edit Distance
- Linux内核中的定时器的实现与管理
- 24.继承1:父类和子类
- POJ 2411 Mondriaan's Dream 状态压缩dp