[Buổi 21][Cây Fenwick (Binary Indexed Tree)][HW] Bài 3: Đếm nghịch thế bằng chỉ số tần suất


LÀM BÀI

Points: 100
Time limit: 3.0s
Memory limit: 256M

Author:
Problem types

Đếm nghịch thế bằng chỉ số tần suất

Bối cảnh và bài toán

Một dãy số phân biệt cần được đánh giá mức độ "lộn xộn". Mỗi cặp chỉ số i < j nhưng a[i] > a[j] được tính là một nghịch thế. Ở B12 ta đã biết một lời giải dựa trên merge; lần này mục tiêu là khai thác kiến thức cấu trúc truy vấn tần suất để nhìn lại cùng bài toán từ một góc khác.

Yêu cầu

Tính tổng số nghịch thế của dãy.

Input

  • Dòng 1 chứa n.
  • Dòng 2 chứa n số nguyên phân biệt.

Output

In số nghịch thế của dãy.

Ràng buộc

  • 1 <= n <= 2 * 10^5
  • 1 <= a[i] <= 10^9
  • Các giá trị đôi một khác nhau.

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% n <= 30 01–04
S2 30% n <= 5000 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

5
2 3 8 6 1

Output

5

Giải thích. Các nghịch thế là (2,1), (3,1), (8,6), (8,1), (6,1).

Ví dụ 2

Input

4
4 3 2 1

Output

6

Giải thích. Dãy giảm hoàn toàn có n(n-1)/2 = 6 nghịch thế.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M07-B21-HW03
Buổi B21
Loại bài HOMEWORK
Mức độ khó Trung bình (Medium)
Thời gian làm bài khuyến nghị 45 phút
Time limit 3 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++11 trở lên

Nguồn: Phỏng theo SPOJ INVCNT – Inversion Count.


Comments

There are no comments at the moment.

Zalo