Editorial for Bedao Mini Contest 14 - MUSKETEERS
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Bài toán được giải bằng tư tưởng Bao hàm loại trừ dựa trên số cặp quân mã tấn công nhau như sau:
Gọi ~H(x)~ là số cấu hình mà không quan tâm đến thứ tự vị trí của ~3~ người có số cặp quân mã tấn công nhau lớn hơn hoặc bằng ~x~. Đáp án bài toán là:
~ans = 6!\times \sum_{x=0}^{\infty}(-1)^x\times H(x)~
Nhận thấy ~H(x)=0,\,x\geq 3~ nên công thức đáp án có thể rút gọn thành:
~ans = 6!\times \left[H(0) - H(1) + H(2)\right]~
Cách tính ~H(0)~
Dễ dàng nhận được bằng cách tính số cách đặt ~3~ quân mã ở vị trí bất kỳ vào ~n\times m~ ô bàn cờ theo công thức:
~H(0)=\binom{n\times m}{3}~
~\binom{n}{k}~ là tổ hợp chập ~k~ của ~n~. Xem thêm định nghĩa tại đây.
Cách tính ~H(1)~
Để tính được ~H(1)~, ta cần cố định ~1~ cặp quân mã tấn công nhau và quân mã còn lại sẽ được chọn vị trí tự do, Gọi ~G(1)~ là số cấu hình đặt ~1~ cặp quân mã tấn công nhau trên bảng, ta có công thức:
~H(1)=\binom{n\times m - 2}{1}\times G(1)=(n\times m-2) \times G(1)~
Để tính ~G(1)~ ta sẽ xét các trường hợp:
~(x;y)\leftrightarrow (x+1; y+2)~
~(x;y)\leftrightarrow (x+2; y+1)~
~(x;y)\leftrightarrow (x-1; y-2)~
~(x;y)\leftrightarrow (x-2; y-1)~
Với ~(x;y)~ là vị trí của quân mã trên bàn cờ.
Trường hợp thứ ~i~ mình sẽ xem nó là một hình chữ nhật với độ lớn ~a_i\times b_i~ sao cho hình chữ nhật là nhỏ nhất và bao gọn toàn bộ các quân mã đang xét trong từng trường hợp. Cụ thể:
~a_1\times b_1 = 2\times 3~
~a_2\times b_2 = 3\times 2~
~a_3\times b_3 = 2\times 3~
~a_4\times b_4 = 3\times 2~
Với mỗi trường hợp thì số cấu hình trong trường hợp đó là ~(n-a_i+1)\times (m-b_i+1)~ (Nhận được từ việc tịnh tiến hình chữ nhật đến mọi vị trí có thể của bàn cờ). Vậy ta có công thức của ~G(1)~:
~G(1)=\sum_{i}\left[(n-a_i+1)\times (m-b_i+1)\right]~
Suy ra công thức ~H(1)~:
~H(1)=(n\times m-2) \times \sum_{i}\left[(n-a_i+1)\times (m-b_i+1)\right]~
Cách tính ~H(2)~
Tương tự tư tưởng tính ~H(1)~ nhưng lần này có nhiều trường hợp hơn không thể xét bằng tay được nên mình sẽ sử dụng thuật trâu với độ phức tạp phù hợp để tìm ra các trường hợp. Tổng cộng có ~28~ trường hợp:
~\#(1\times 4) = 2~
~\#(2\times 2) = 8~
~\#(2\times 3) = 4~
~\#(2\times 4) = 2~
~\#(3\times 2) = 4~
~\#(3\times 3) = 4~
~\#(4\times 1) = 2~
~\#(4\times 2) = 2~
Với ~\#(a_i\times b_i)~ là số trường hợp có hình chữ nhật kích thước ~a_i\times b_i~.
Công thức của ~H(2)~:
~H(2) = \sum_i \left[(n-a_i+1)\times (m-b_i+1)\right]~
Comments