Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C] Đếm số nghịch thế bằng Fenwick Tree

    Cho mảng aaa có nnn phần tử. Nghịch thế là cặp (i,j)(i, j)(i,j) với i<ji < ji<j và ai>aja_i > a_jai​>aj​. Hãy đếm tổng số nghịch thế.

    Dùng Fenwick Tree (BIT) sau khi nén toạ độ: duyệt từ phải sang trái, với mỗi aia_iai​ đếm số phần tử nhỏ hơn đã thấy bằng BIT — tổng thời gian O(nlog⁡n)O(n \log n)O(nlogn).

    Ví dụ a=[2,4,1,3,5]a = [2, 4, 1, 3, 5]a=[2,4,1,3,5]: các cặp (2,1),(4,1),(4,3)(2,1), (4,1), (4,3)(2,1),(4,1),(4,3) → 333 nghịch thế.

    • Định dạng đầu vào:

      Dòng 1: nnn. Dòng 2: nnn số nguyên.

    • Ràng buộc đầu vào:

      1≤n≤1051 \le n \le 10^51≤n≤105, −109≤ai≤109-10^9 \le a_i \le 10^9−109≤ai​≤109.

    • Định dạng đầu ra:

      Một số nguyên — số nghịch thế.

    Ví dụ:

    Đầu vào:

    5
    2 4 1 3 5
    

    Đầu ra:

    3

    Giải thích:

    Ba cặp nghịch thế: (2,1), (4,1), (4,3).

    Đang tải editor...