Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: [Java] Đếm số cặp nghịch thế

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 3: Mảng, tìm kiếm và sắp xếp — khóa Lập trình Java

    Cho mảng gồm nnn số nguyên. Một cặp nghịch thế là cặp chỉ số (i,j)(i, j)(i,j) sao cho i<ji < ji<j nhưng ai>aja_i > a_jai​>aj​. Hãy đếm tổng số cặp nghịch thế trong mảng.

    Vì nnn có thể lớn, lời giải O(n2)O(n^2)O(n2) sẽ quá chậm; hãy dùng kỹ thuật chia để trị (sắp xếp trộn) hoặc cây chỉ số để đạt O(nlog⁡n)O(n \log n)O(nlogn).

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

      Dòng đầu chứa nnn. Dòng thứ hai chứa nnn số nguyên cách nhau bởi dấu cách.

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

      1≤n≤2×1051 \le n \le 2 \times 10^51≤n≤2×105, −109≤ai≤109-10^9 \le a_i \le 10^9−109≤ai​≤109. Giới hạn thời gian < 2s.

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

      In ra một số nguyên là tổng số cặp nghịch thế.

    Ví dụ:

    Đầu vào:

    5
    5 4 3 2 1

    Đầu ra:

    10

    Giải thích:

    Mảng giảm hoàn toàn nên mọi cặp đều nghịch thế: C(5,2) = 10 cặp.

    Chủ đề

    🌱 Nhập môn lập trình☕ JavaJavaJava: Mảng & Danh sáchTất cả môn học

    Đang tải editor...