Mã hóa Huffman gán mã ngắn cho ký hiệu xuất hiện nhiều. Tổng số bit của thông điệp nén bằng tổng freq[i] * len(code[i]).
Một cách tính nhanh: dùng min-heap, lặp lấy 2 tần suất nhỏ nhất a, b, cộng a+b vào tổng và đẩy a+b trở lại heap. Tổng các lần gộp chính là tổng số bit.
Nếu chỉ có 1 ký hiệu, mã dài 1 bit nên tổng bit = tần suất của nó.
Tần suất [1, 1, 2, 4] → tổng bit = 14.
Input :
4
1 1 2 4
Output: 14
Dòng đầu là n (số ký hiệu). Dòng sau gồm n số nguyên dương là tần suất.
1 ≤ n ≤ 10^5; 1 ≤ freq ≤ 10^9.
Tổng số bit của thông điệp sau mã hóa Huffman.
Ví dụ:
Đầu vào:
4
1 1 2 4
Đầu ra:
14
Giải thích:
Đang tải editor...