B HDU 5532 Almost Sorted Array

来源:互联网 发布:python counter 升序 编辑:程序博客网 时间:2024/06/05 09:22

题目点我

我一开始数组开小了,结果TLE 。。。。
Orz

就是一道很简单的模板题
我不知道为什么就是过不了

注意非递增和非递减,和我们一般写的LIS不一样
人蠢

#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <iostream>using namespace std;const int maxn = 100000 + 10;const int inf  = 0x3f3f3f3f;int a[maxn];int dp[maxn],n;int calc(int sign){    fill(dp,dp+maxn,inf);    int ans = 0;    for(int i=0;i<n;i++){        int index = upper_bound(dp,dp+ans,a[i]*sign) - dp;        dp[index] = a[i]*sign;        ans = max(ans,index+1);    }    return ans;}int lins()//曾序{    return calc(1);}int lnds()//减序{    return calc(-1);}int main(){    int t;    scanf("%d",&t);    while(t--){        scanf("%d",&n);        for(int i=0;i<n;i++){            scanf("%d",&a[i]);        }        printf( (lins() >= n-1 || lnds() >= n-1)? "YES\n" : "NO\n" );    }}

2015 ICPC 的水题吧
加油~

0 0