trang chủ / đề bài / bubsortg

Đồ thị sắp xếp nổi bọt

Đề bài

Mô tả

Cho một hoán vị a1,a2,…,aN của các số từ 1 đến N.

Ta xây dựng một đồ thị vô hướng G gồm N đỉnh, được đánh số từ 1 đến N (đỉnh mang giá trị của phần tử, không phải vị trí), ban đầu không có cạnh nào. Các cạnh được thêm vào trong quá trình chạy thuật toán sắp xếp nổi bọt trên dãy a:

repeat
    swapped = false
    for i = 1 to N - 1:
        if a[i] > a[i + 1]:
            thêm cạnh vô hướng giữa hai đỉnh a[i] và a[i + 1]
            đổi chỗ a[i] và a[i + 1]
            swapped = true
until swapped == false

Một tập độc lập của G là một tập các đỉnh mà không có hai đỉnh nào trong đó được nối với nhau bằng một cạnh.

Hãy tìm kích thước của tập độc lập lớn nhất của G.

Dữ liệu vào

  • Dòng đầu chứa số nguyên N.
  • Dòng thứ hai chứa N số nguyên đôi một phân biệt a1,a2,…,aN.

Dữ liệu ra

Một số nguyên duy nhất: kích thước của tập độc lập lớn nhất của G.

Ràng buộc

  • 2≤N≤105
  • 1≤ai≤N, các ai đôi một phân biệt

Ví dụ

Input Output Giải thích
3
3 1 2
2 Thuật toán đổi chỗ 3 và 1, thêm cạnh (1,3), dãy thành [1,3,2]. Sau đó đổi chỗ 3 và 2, thêm cạnh (2,3), dãy đã sắp xếp. Đồ thị có hai cạnh (1,3) và (2,3), tập độc lập lớn nhất là {1,2}.
5
4 2 1 3 5
3 Đồ thị nhận được có các cạnh (4,2),(4,1),(4,3),(2,1). Một tập độc lập lớn nhất là {2,3,5} (hoặc {1,3,5}).
3
3 2 1
1 Mọi cặp đỉnh đều được nối với nhau, nên tập độc lập lớn nhất chỉ có một đỉnh.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0