Editorial for Mua Cô Ca


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

Submitting an official solution before solving the problem yourself is a bannable offence.

Nếu chăm làm Codeforces, bài này có lẽ không làm khó bạn được lâu.

Đây là dạng bài thường hay gặp ở các bài A,B,C Div.2 - những bài không đòi hỏi thuật toán gì cụ thể, nhưng bắt ta phải quan sát đặc tính bài toán và đưa ra một lời giải ngắn gọn.

Giả sử bạn dùng một xâu \(S\)\(n\) kí tự, được đánh số từ \(1\) để diễn tả băng giấy.

Ban đầu, nếu \(S[1] = S[n]\) thì Alice không thể đi được nên thua ngay trong lượt đầu tiên (vì lúc đầu thì toàn bộ xâu \(S\) chính là đoạn duy nhất).

Ngược lại, bạn tìm xem thử có tồn tại \(i : 1 \leq i < n\)\(S[i] = S[1], S[i+1] = S[n]\) hay không? Nếu câu trả lời là 'Có', thì Alice thắng như sau : Cô ấy chọn đoạn \(S[1..n]\) và cắt ra tại vị trí \(i\), khi đó đoạn giấy \(S[1..n]\) được tách ra làm 2 đoạn \(S[1..i]\)\(S[i+1..n]\). Như vậy khi tới lượt Bob, anh ấy sẽ không thể đi được nên thua.

Ta luôn tìm ra được vị trí \(i : 1 \leq i < n\)\(S[i] = S[1], S[i+1] = S[n]\), như trên. Để chứng minh ta sẽ phản chứng.

"Trong xâu \(S\) không tồn tại \(i\)\(S[i] = S[1], S[i+1] = S[n]\), nên mọi kí tự giống \(S[n]\), phải đứng trước mọi kí tự giống \(S[1]\). Dễ thấy \(S[1]\) đứng trước \(S[n]\) nên mâu thuẫn, từ đó suy ra ĐPCM."



Comments

There are no comments at the moment.