Cây Chiều Cao Nhỏ Nhất

Đề bài

Mô tả

Cho một dãy số nguyên a1,a2,,anthứ tự duyệt BFS của một cây có gốc tại đỉnh 1. Cụ thể, thuật toán BFS được mô tả bằng đoạn giả mã sau:

a = []          # thứ tự các đỉnh được xử lý
q = Queue()
q.put(1)        # đặt gốc vào hàng đợi
while q không rỗng:
    k = q.pop()
    a.append(k)
    for y in g[k]:   # g[k] là danh sách con của k, đã sắp xếp tăng dần
        q.put(y)

Lưu ý rằng đối với mỗi đỉnh, các con của nó được duyệt theo thứ tự tăng dần giá trị nhãn.

Có thể có nhiều cây cùng cho ra dãy duyệt BFS a. Hãy tìm chiều cao nhỏ nhất trong tất cả các cây như vậy.

Chiều cao của cây là độ sâu lớn nhất của một đỉnh, trong đó độ sâu của đỉnh là số cạnh trên đường đi từ gốc tới đỉnh đó (gốc có độ sâu 0).

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm:
    • Dòng đầu chứa số nguyên n — số đỉnh của cây.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an là thứ tự duyệt BFS.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một số nguyên là chiều cao nhỏ nhất có thể.

Ràng buộc

  • 1t1000
  • 2n2·105
  • 1ain, các ai phân biệt, a1=1
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
3
4
1 4 3 2
2
1 2
3
1 2 3
3
1
1
Bộ 1: dãy 1,4,3,2 giảm dần sau đỉnh 1, nên mỗi đỉnh cha chỉ có thể có đúng một con — cây trở thành đường thẳng, chiều cao 3.
Bộ 3: dãy 1,2,3 tăng dần, có thể cho cả 23 làm con của 1 — chiều cao 1.
1
4
1 4 2 3
2 Cho 4 làm con của 1 (độ sâu 1), rồi 23 làm con của 4 (độ sâu 2, các nhãn 2<3 tăng dần thoả mãn).

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