HDU 1950最长上升子序列 学习nlogn
2017-09-19 13:56
375 查看
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=1950本题是裸的LIS,之前和队友比赛发现自己用的dp最长上升子序列有点跟不上了,便学一发lower_bound。
#include <iostream> #include <cstring> #include <algorithm> #include <cstdio> #include <cmath> using namespace std; const int INF = 0x3f3f3f3f; int a[40004]; int dp[40004]; int main() { int t; scanf("%d", &t); while(t--) { int p; scanf("%d", &p); for(int i = 1;i <= p;i++) scanf("%d",&a[i]); memset(dp, INF, sizeof(dp)); for(int i = 1;i <= p;i++) *lower_bound(dp + 1, dp + 1 + p, a[i]) = a[i]; int ans = lower_bound(dp + 1, dp + 1 + p, INF) - (dp + 1); printf("%d\n", ans); } return 0; }
相关文章推荐
- HDU-1950-Bridging signals【最长上升子序列(LIS)长度的O(nlogn)算法】
- hdu 1025 Constructing Roads In JGShining's Kingdom 深夜又一波DP,最长上升子序列(O(nlogn)算法)!尼玛坑爹的输出啊!!
- hdu 5748(求解最长上升子序列的两种O(nlogn)姿势)
- HDU-1025 Constructing Roads In JGShining's Kingdom O(nlogn)的最长上升子序列
- HDU 1950 最长上升子序列
- HDU 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列O(nlogn))
- hdu 1025 Constructing Roads In JGShining's Kingdom 最长上升子序列(nlogn)
- hdu 1950 Bridging signals 最长上升序列nlogn
- 【HDU 1950】Bridging signals(LIS算法求最长上升子序列)
- hdu 5532 (最长上升子序列)nlogn
- 最长公共上升子序列(LCIS)学习小记 Hdu 1423 + Poj 2127 (LCIS路径输出)
- hdu 1950 Bridging signals(最长上升子序列)
- 每日三题-Day3-C(HDU 1257 最少拦截系统 最长上升子序列O(nlogn) )
- hdu 1950 Bridging signals--二分法求最长上升子序列
- HDU 1025 最长上升子序列(nlogn)
- hdu 1950最长单调上升子序列
- HDU - 1025 Constructing Roads In JGShining's Kingdom (nlogn 最长上升子序列)
- hdu 1950 Bridging signals 最长上升子序列
- hdu 5748 && poj 2533 最长上升子序列(o(nlogn)做法)
- 每日三题-Day5-A(POJ 2533 Longest Ordered Subsequence 最长上升子序列O(nlogn)解法)