canuc80k1821·22/50

Truy Hồi Bit

Nộp bài trên LQDOJ

Bài 18 · Matrix Multiplication

Cho số hạng đầu và hệ số -bit. Các số hạng tiếp theo được tạo bằng phép AND theo hệ số rồi XOR các kết quả. Hãy tính số hạng thứ .

Input

  • Dòng đầu chứa .
  • Dòng hai chứa .
  • Dòng ba chứa .
  • Với : .

Output

  • In dưới dạng số nguyên không dấu -bit.

Constraints

  • .
  • .
  • .

Scoring

  • Subtask (): .
  • Subtask (): không có giới hạn bổ sung.

Example

Test 1

Input

2 4
1 2
4294967295 4294967295

Output

1

Giải thích: Ta có , rồi .

Lời giải tóm tắt
  • Phân tích: Phép XOR đóng vai trò cộng và phép AND đóng vai trò nhân trên semiring bit.
  • Thuật toán: Dùng companion matrix K×K với đường chéo đơn vị là UINT32_MAX.
  • Chứng minh tính đúng đắn: Hàng đầu thực hiện đúng công thức truy hồi; các hàng còn lại dịch lịch sử. Lũy thừa semiring bảo toàn từng bit độc lập.
  • Độ phức tạp: Thời gian O(K^3 log M); bộ nhớ O(K^2).