canuc80k4504·5/20

Không Gian UFO

Nộp bài trên LQDOJ

Bài 45 · 2D Fenwick Tree

Một khối lập phương dùng tọa độ từ đến để ghi số UFO tại mỗi ô. Ban đầu mọi ô bằng ; các lệnh cộng tại một ô hoặc hỏi tổng trong một hộp chữ nhật đóng.

Input

  • Dòng đầu chứa .
  • Tiếp theo là các lệnh , hoặc lệnh kết thúc .

Output

  • Với mỗi lệnh loại , in tổng UFO trong hộp trên một dòng.

Constraints

  • .
  • Có không quá lệnh.
  • ; sau cập nhật, số UFO tại mọi ô không âm.
  • Mọi tọa độ thuộc , các cận dưới không vượt cận trên.

Scoring

  • Subtask ( số điểm): và có không quá lệnh.
  • Subtask ( số điểm): Không có giới hạn bổ sung.

Example

Test 1

Input

3
1 0 0 0 4
1 2 1 2 3
2 0 0 0 2 2 2
1 0 0 0 -1
2 0 0 0 0 0 0
3

Output

7
3

Giải thích: Hộp đầu chứa cả hai ô đã cập nhật nên có UFO. Sau khi bớt một UFO ở gốc, riêng ô còn .

Lời giải tóm tắt
  • Ý tưởng: Dịch mỗi tọa độ lên 1. Cập nhật dùng ba vòng tăng lowbit. Prefix P(x,y,z) dùng ba vòng giảm. Tổng hộp dùng inclusion-exclusion trên 8 lựa chọn lấy cận trên hoặc cận dưới-1; dấu phụ thuộc số cận dưới được chọn.
  • Chứng minh: Theo từng trục, Fenwick phân hoạch prefix thành các đoạn rời nhau; tích của ba phân hoạch là phân hoạch hộp prefix. Inclusion-exclusion ba tập loại đúng các phần nằm trước từng cận dưới, nên mỗi ô trong hộp được giữ một lần.
  • Độ phức tạp: Mỗi lệnh O(log³N); nhớ O(N³).
  • Lưu ý cài đặt: Sai dấu 8 hạng; quên dịch 0-based; dùng chỉ số phẳng không đủ rộng.