pstopia Notes for Problem Solving Contest

[Easy] RowAndCoins

Topcoder SRM 522 Div1

Problem

게임판의 양 끝 중 하나에 A가 쓰여있다면 Alice는 첫턴에 그 칸을 뺀 나머지에 전부 동전을 놓으면 필승이다. 그럼 이제 양 끝이 모두 B인 경우가 문제다. 만약 Alice가 첫턴에 동전을 놓은 구간이 양 끝 중 하나를 덮는다면 Bob은 반대쪽 B만 남도록 동전을 항상 놓을 수 있으므로 이렇게 되면 Bob이 필승이다. Alice의 남은 선택은 첫턴에 동전을 가운데구역에 적당히 놓는 것이다. 하지만 그래도 Bob이 무조건 이길 수 있는 방법이 있다. Alice가 첫턴을 플레이한 다음의 게임판 상태가 이렇다고 하자. BAABBABABxxxxxxBABBBABAAB Bob은 다음턴에 다음과 같이 놓으면 무조건 이길 수 있다. BAABBABABxxxxxxxxxxxxxxxB 혹은 BxxxxxxxxxxxxxxBABBBABAAB 그냥 평범하게 bitmask 를 이용한 게임 DP를 돌려도 되긴 하다.