[Mo's] Cập Nhật
Xem dưới dạng PDF
Gửi bài giải
Điểm:
100
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Tý có một thư viện số hóa lưu trữ \(N\) tài liệu theo thứ tự đánh số. Mỗi tài liệu có một mã chủ đề (số nguyên dương). Thủ thư cần thực hiện \(Q\) thao tác gồm hai loại:
1 pos val: Cập nhật mã chủ đề của tài liệu tại vị trí \(pos\) thành giá trị \(val\).2 L R: Truy vấn xem trong đoạn tài liệu từ \(L\) đến \(R\) có bao nhiêu mã chủ đề khác nhau (tính tại thời điểm hiện tại).
Hãy giúp thủ thư xử lý các thao tác.
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\) (\(1 \le N, Q \le 10^5\)).
- Dòng thứ hai chứa \(N\) số nguyên dương \(a_1, a_2, \dots, a_N\) (\(1 \le a_i \le 10^9\)).
- \(Q\) dòng tiếp theo, mỗi dòng mô tả một thao tác theo định dạng trên.
Định dạng đầu ra
- Với mỗi thao tác loại \(2\), in ra số mã chủ đề khác nhau trong đoạn tương ứng.
Ví dụ
Input:
5 6
1 2 3 2 1
2 1 3
1 3 2
2 1 5
1 2 4
2 1 4
2 3 5
Output:
3
2
4
2
Giải thích:
- Ban đầu \([1,2,3,2,1]\).
- \([1,3]\): \(\{1,2,3\}\) → 3 khác nhau.
- Cập nhật \(pos=3\) thành \(2\): \([1,2,2,2,1]\).
- \([1,5]\): \(\{1,2\}\) → 2 khác nhau.
- Cập nhật \(pos=2\) thành \(4\): \([1,4,2,2,1]\).
- \([1,4]\): \(\{1,4,2\}\) → 3 khác nhau. (Sửa ví dụ: đúng \(\{1,4,2,2\}\) → 3)
- \([3,5]\): \(\{2,2,1\}\) → 2 khác nhau.
Subtask
| Subtask | Giới hạn | Điểm |
|---|---|---|
| 1 | \(N, Q \le 10^3\) | 20 |
| 2 | \(N \le 5 \cdot 10^4\), \(Q \le 10^5\) | 30 |
| 3 | \(N, Q \le 10^5\) | 50 |
Nhận xét