HDU 5532 Almost Sorted Array——LIS

网友投稿 444 2022-11-28

HDU 5532 Almost Sorted Array——LIS

HDU 5532 Almost Sorted Array——LIS

非严格递增递减要求使用upper_bound()

#include #include #include #include using namespace std;const int MAXN = 1e5 + 10;int T, N, a[MAXN], b[MAXN];int LIS() { int cnt = 0; b[++cnt] = a[1]; for (int i = 2; i <= N; i++) { if (a[i] >= b[cnt]) b[++cnt] = a[i]; else { int pos = upper_bound(b + 1, b + cnt, a[i]) - b; b[pos] = a[i]; } } return cnt;}int main() { scanf("%d", &T); for (int kase = 1; kase <= T; kase++) { scanf("%d", &N); for (int i = 1; i <= N; i++) scanf("%d", &a[i]); bool ok = false; if (LIS() >= N - 1) ok = true; reverse(a + 1, a + 1 + N); if (LIS() >= N - 1) ok = true; if (ok) printf("YES\n"); else printf("NO\n"); } return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:POJ 1733 Parity game——并查集 + 离散化
下一篇:如何通过ServletInputStream读取http请求传入的数据
相关文章

 发表评论

暂时没有评论,来抢沙发吧~