poj 2533 Longest Ordered Subsequence
2016-07-24 18:20
429 查看
不发题目了
其实就是输入n个数,然后求最长上升子序列的长度(严格上升)
之前写的二分出现小问题,不停RE
最后怒用STL
有一个很清晰的讲解 传送门
【代码】
【还有一个手写二分代码】
注意 if(d[mid-1]
其实就是输入n个数,然后求最长上升子序列的长度(严格上升)
之前写的二分出现小问题,不停RE
最后怒用STL
有一个很清晰的讲解 传送门
【代码】
//poj 2533 Longest Ordered Subsequence #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define fo(i,j,k) for(i=j;i<=k;i++) using namespace std; int n,len=1; int a[10001],d[10001]; int main() { int i,j,k; scanf("%d",&n); fo(i,1,n) scanf("%d",&a[i]); d[1]=a[1]; fo(i,2,n) { if(a[i]>d[len]) d[++len]=a[i]; else if(a[i]<d[1]) d[1]=a[i]; else d[lower_bound(d,d+len,a[i])-d]=a[i]; } printf("%d\n",len); return 0; }
【还有一个手写二分代码】
//poj 2533 Longest Ordered Subsequence #include<iostream> #include<cstdio> #include<cstring> #define fo(i,j,k) for(i=j;i<=k;i++) using namespace std; int n,len=1; int a[10001],d[10001]; inline int erfen(int x) { int l=1,r=len; while(l<=r) { int mid=(l+r)/2; if(d[mid-1]<x && x<=d[mid]) return mid; if(x>d[mid]) l=mid+1; else r=mid-1; } } int main() { int i,j,k; scanf("%d",&n); fo(i,1,n) scanf("%d",&a[i]); d[1]=a[1]; fo(i,2,n) { if(a[i]>d[len]) d[++len]=a[i]; else if(a[i]<d[1]) d[1]=a[i]; else d[erfen(a[i])]=a[i]; } printf("%d\n",len); return 0; }
注意 if(d[mid-1]
相关文章推荐
- burpsuite中intruder标签内attack type四种类型的用法和区别
- Binary Tree Longest Consecutive Sequence
- Range Sum Query 2D -- leetcode
- (OK) install VirtualBox Guest Additions
- HDU 1711 Number Sequence(kmp模板)
- Golang 之 key-value LevelDB
- 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II
- LeetCode 225. Implement Stack using Queues
- [php]include()和require()区别【学习笔记】
- ueditor1_4_3_3编辑器修改文章
- POJ 3368 Frequent valuess
- UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 26269: illegal multibyte sequence
- HDU5301 Buildings [图形]
- Dubbo的广播模式下Can't assign requested address问题解决
- Java对象的强、软、弱和虚引用原理+结合ReferenceQueue对象构造Java对象的高速缓存器
- Bringing up interface eth0: Error: No suitable device found: no device found for connection ' Syste
- HDU 1509 Windows Message Queue (优先队列)
- HDU 5749 Colmerauer(单调栈+推公式)
- HDU 5749 Colmerauer 单调队列+暴力贡献
- JAVASE总结--05(continue、break)