Tích Lạ
Đề bài
Mô tả
Cho ma trận nhị phân kích thước (mỗi phần tử là hoặc ). Mọi phép tính ở bài này được thực hiện trên , tức là cộng và nhân đều lấy modulo .
Định nghĩa tích lạ của ma trận là tổng (theo ) của tích vô hướng: tích vô hướng thứ là tích vô hướng giữa hàng thứ và cột thứ của . Cụ thể:
Cho ma trận ban đầu, bạn cần xử lý truy vấn, mỗi truy vấn thuộc một trong ba loại:
1 i— đảo bit toàn bộ hàng thứ (mỗi trở thành ).2 i— đảo bit toàn bộ cột thứ .3— in ra giá trị tích lạ của tại thời điểm hiện tại.
Gọi là số truy vấn loại . Hãy in ra một xâu duy nhất gồm kí tự, kí tự thứ là kết quả của truy vấn loại thứ (theo đúng thứ tự xuất hiện trong dữ liệu vào).
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên — kích thước ma trận.
- dòng tiếp theo, dòng thứ chứa số nguyên cách nhau bởi dấu cách.
- Dòng tiếp theo chứa số nguyên — số truy vấn.
- dòng tiếp theo mô tả các truy vấn theo định dạng ở trên.
Dữ liệu ra
In ra một xâu nhị phân duy nhất, mỗi kí tự là kết quả của một truy vấn loại theo thứ tự xuất hiện. Nếu không có truy vấn loại nào thì không in gì cả.
Ràng buộc
- Với mọi truy vấn loại hoặc : .
Lưu ý: do dữ liệu vào và dữ liệu ra có thể rất lớn, nên dùng các phương thức nhập xuất nhanh (ví dụ tránh cin/cout trong C++).
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 1 1 1 0 1 1 1 0 0 12 3 2 3 3 2 2 2 2 1 3 3 3 1 2 2 1 1 1 3 |
01001 | Có truy vấn loại . Tích lạ ban đầu bằng . Sau khi đảo cột , tích lạ thành . Sau hai lần đảo cột (không đổi) rồi đảo hàng , tích lạ thành . Hai truy vấn cuối cùng cho ra và . |
| 2 0 1 1 0 1 3 |
0 | Tích lạ . |
Bình luận