Dãy con gần tăng dài nhất

Đề bài

Mô tả

Một dãy b1,b2,,bk được gọi là gần tăng nếu:

min(b1,b2)min(b2,b3)min(bk1,bk).

Mọi dãy có không quá hai phần tử đều được coi là gần tăng.

Cho dãy số nguyên a1,a2,,an. Hãy tính độ dài lớn nhất của một dãy con (không cần liên tiếp) gần tăng của a.

Một dãy con của a là dãy thu được bằng cách xóa đi một số phần tử (có thể không xóa) trong a mà giữ nguyên thứ tự các phần tử còn lại.

t test case độc lập trong một file dữ liệu.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t — số lượng test case.
  • Với mỗi test case:
    • Dòng đầu chứa một số nguyên n — độ dài dãy.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Với mỗi test case, in ra một số nguyên — độ dài lớn nhất của dãy con gần tăng của a.

Ràng buộc

  • 1t1000
  • 2n5·105
  • 1ain
  • Tổng n trên tất cả test case không vượt quá 5·105.

Ví dụ

Input Output Giải thích
3
8
1 2 7 3 2 1 2 3
2
2 1
7
4 1 5 2 6 3 7
6
2
7
Test 1: một dãy con tối ưu là 1,2,7,2,2,3 với các giá trị min liên tiếp là 1,2,2,2,2 — không giảm.
Test 2 và 3: cả dãy đã là gần tăng.
3
8
1 2 7 6 2 1 1 3
2
2 1
7
4 1 5 2 6 3 7
5
2
7
Test 1: một dãy con tối ưu độ dài 51,2,6,2,3 (các giá trị min liên tiếp: 1,2,2,2, không giảm).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0