hdu 5532(最长上升子序列)
来源:互联网 发布:产品外观结构设计软件 编辑:程序博客网 时间:2024/05/16 19:04
Input
The first line contains an integer T indicating the total number of test cases. Each test case starts with an integer n in one line, then one line with n integers a1,a2,…,an .
1≤T≤2000
2≤n≤105
1≤ai≤105
There are at most 20 test cases withn>1000 .
There are at most 20 test cases with
Output
For each test case, please output "`YES`" if it is almost sorted. Otherwise, output "`NO`" (both without quotes).
Sample Input
332 1 733 2 153 1 4 1 5
Sample Output
YESYESNO
题意:给你一组数,能否删除一个后使他成为升序或者降序
思路:
正反分别求一次最长上升子序列,只要长度有一次≥n-1即可
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <queue>#include <vector>#include <algorithm>#include <functional>typedef long long ll;using namespace std;const int maxn = 1e5 + 5;int b[maxn];int n;int Search(int num,int low,int high){ int mid; while(low <= high) { mid = (low+high)/2; if(num >= b[mid]) low= mid+1; else high = mid-1; } return low;}int fin(int *a){ int len,pos; b[1] = a[1]; len = 1; for(int i = 2;i <= n;i++) { if(a[i] >= b[len]) { len = len+1; b[len] = a[i]; } else { pos = Search(a[i],1,len); b[pos ] = a[i]; } } if(len >= n-1) return true; else return false;}int t[maxn],tt[maxn];int main(){ int cas; scanf("%d",&cas); while(cas--) { scanf("%d",&n); for(int i = 1;i <= n;i++) scanf("%d",t+i); for(int i = 1;i <= n;i++) tt[n+1-i] = t[i]; bool flag = fin(t); flag |= fin(tt); if(flag) printf("YES\n"); else printf("NO\n"); }}
0 0
- hdu 5532(最长上升子序列)
- hdu 1069 (最长上升子序列)
- hdu 5256(最长上升子序列)
- hdu 5532 (最长上升子序列)nlogn
- hdu 5532 Almost Sorted Array(最长上升(不下降)子序列和最长下降(不上升)子序列)
- 【HDU】5256 序列变换(最长上升子序列变形)
- hdu 5256 序列变换(最长上升子序列&&二分)
- HDU 5256 序列变换(最长上升子序列)
- hdu 5532 Almost Sorted Array 最长上升子序列
- HDU 1025 高效最长上升子序列(二分查)
- HDU 3308 最长上升连续子序列 (线段树)
- HDU 1257(贪心;动态规划(最长上升子序列))
- hdu 3998(最长上升子序列及个数)
- HDU 1087最长上升子序列(DP)
- HDU 3308 LCIS(最长连续上升子序列)
- HDU 1257 最少拦截系统(最长上升子序列)
- HDU 1423 (最长上升公共子序列)
- hdu 1257 最少拦截系统(最长上升子序列)
- Android 中轴旋转特效实现,制作别样的图片浏览器
- On Hat Puzzle 1.2: Solutions
- Spring in action 学习(2)创建Bean
- 乔布斯是如何形象解释 OOP 的
- 解决Delphi开发DLL中窗体按钮显示状态不刷新问题.
- hdu 5532(最长上升子序列)
- 简单易学代码块(block)
- PostgreSQL中使用动态SQL-实现自动按时间创建表分区
- C# 委托实例(跨窗体操作控件)
- 数据库SQL中Like的用法总结
- Tomcat关闭过程(Tomcat源码解析四)
- K Smallest Sums(优先队列+思维推广)
- 数据库课堂笔记
- 某公司的面试题目