Sprague-Grundy Theorem 3

백준 18937 - 왕들의 외나무다리 돌게임 [Python]

https://www.acmicpc.net/problem/18937 18937번: 왕들의 외나무다리 돌게임 길이 6짜리의 외나무다리에 흰 돌이 3번 칸에 있고, 검은 돌이 5번 칸에 있으면, 흰 돌은 1, 2, 4번 칸 중 하나로 이동할 수 있으며, 검은 돌은 4, 6번 칸 중 하나로 이동할 수 있다. 돌을 상대 돌로 www.acmicpc.net 외나무다리의 길이가 n이면, 그런디 수는 n - 2이다. 여기서 뒤로 가는 것은 승패에 영향을 끼치지 않으므로, 그냥 xor해주면 끝이다. 코드 bo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def ip(): return int(input()) def sp(): return str(input().rstrip()) def m..

백준 문제풀이 2021.08.19

백준 11871 - 님 게임 홀짝 [Python]

https://www.acmicpc.net/problem/11871 11871번: 님 게임 홀짝 koosaga와 cubelover가 님 게임 홀짝 버젼을 하고 있다. 님 게임은 돌을 차곡 차곡 위로 쌓아올린 돌 더미 k개를 이용한다. 각각의 돌 더미에는 한 개 이상의 돌이 있다. 두 사람은 서로 턴을 번갈아가 www.acmicpc.net 노트에 8정도까지만 써보면 규칙이 보인다. 홀수면 (i + 1) / 2, 짝수면 (i - 2) / 2이다. 모두 xor해서 승자를 찾으면 끝이다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 def ip(): return int(input()) def sp(): return str(input().rstrip()) def mip(): return ..

백준 문제풀이 2021.08.19

백준 16895 - 님 게임 3 [Python]

www.acmicpc.net/problem/16895 16895번: 님 게임 3 구사과와 큐브러버가 님 게임을 하고 있다. 님 게임은 돌을 위로 쌓아올린 돌 더미 k개를 이용한다. 각각의 돌 더미에는 한 개 이상의 돌이 있다. 두 사람은 서로 턴을 번갈아가면서 님 게임을 진 www.acmicpc.net Sprague-Grundy Theorem.. 재밌다. O(MN^2) 로 브루트포스 돌리면서 님 합이 0이 된다면 ans에 1 더하는 방식으로 풀었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 n = int(input()) a = list(map(int, input().split())) ans = 0 for i in range(n): for j in range(1, a[i]+1): p = a[i..

백준 문제풀이 2021.04.01