Số khác nhau

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài

Bài toán truy vấn trên dãy: với mỗi đoạn con ~A[L..R]~, hãy đếm số lượng phần tử phân biệt đang xuất hiện trong đoạn đó. Cần xử lý nhiều truy vấn hiệu quả với ràng buộc lớn.

Yêu cầu

Cho dãy số nguyên dương ~A~ độ dài ~N~. Với mỗi truy vấn ~[L,R]~, hãy tính số lượng giá trị khác nhau xuất hiện trong đoạn ~A[L..R]~.

Dữ liệu

  • Dòng đầu chứa hai số nguyên dương ~N~, ~Q~ ~(1\le N,Q\le 10^5)~.
  • Dòng thứ hai chứa ~N~ số nguyên dương biểu diễn dãy ~A~ với ~1\le A_i\le 10^6~.
  • Mỗi trong ~Q~ dòng tiếp theo chứa hai số nguyên ~L~, ~R~ ~(1\le L\le R\le N)~ mô tả một truy vấn.

Kết quả

  • Gồm ~Q~ dòng, dòng thứ ~i~ là số lượng phần tử phân biệt trong ~A[L_i..R_i]~.

Ví dụ

Ví dụ 1

Input

6 2
1 4 5 3 5 2
1 3
3 5

Output

3
2
Ví dụ 2

Input

5 3
1 1 2 1 2
1 5
2 4
3 3

Output

2
2
1

Giải thích

Ví dụ 1
  • Với ~[1,3]~, đoạn ~A[1..3]=[1,4,5]~ có ~3~ giá trị phân biệt ~\{1,4,5\}~.
  • Với ~[3,5]~, đoạn ~A[3..5]=[5,3,5]~ có ~2~ giá trị phân biệt ~\{3,5\}~.
Ví dụ 2
  • ~[1,5]~: ~[1,1,2,1,2]~ có ~2~ giá trị phân biệt ~\{1,2\}~.
  • ~[2,4]~: ~[1,2,1]~ có ~2~ giá trị phân biệt ~\{1,2\}~.
  • ~[3,3]~: chỉ có ~[2]~, nên kết quả ~1~.

Chấm điểm

  • 100% số điểm cho lời giải ~\mathcal{O}((N+Q)\log N)~ hoặc ~\mathcal{O}((N+Q)\sqrt{N})~, ví dụ:
    • Cách 1 (khuyến nghị): xử lý offline theo ~R~ tăng dần, dùng Fenwick / Segment Tree với 1 vị trí xuất hiện cuối cùng:
    • Duyệt ~R=1\to N~, tại mỗi bước: nếu giá trị ~A_R~ đã xuất hiện ở vị trí cũ ~p~, giảm đóng góp tại ~p~, rồi tăng tại ~R~.
    • Trả lời các truy vấn kết thúc tại ~R~ bằng tổng trên ~[L,R]~ (đếm số vị trí đại diện đang bật).
    • Cách 2: Mo\'s algorithm sắp xếp truy vấn theo khối ~\sqrt{N}~, duy trì đếm tần suất và số giá trị đang có tần suất ~>0~.
  • Dùng nhập/xuất nhanh cho ~N,Q\le 10^5~. Có thể nén giá trị nếu miền ~A_i~ lớn.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.