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] - j
for k in range(n):
if i == k: continue
p ^= a[k]
if p == 0:
ans += 1
print(ans)
|
cs |
테케가 약해서 뚫리는데, 원래는 배열 P의 수들을 미리 XOR해두어 풀어야된다.
다시풀음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
n = int(input())
a = list(map(int, input().split()))
t = 0
for i in a:
t^=i
ans = 0
for i in range(n):
for j in range(1, a[i]+1):
p = a[i] - j
p ^= a[i]
p ^= t
if p == 0:
ans += 1
print(ans)
|
cs |
'백준 문제풀이' 카테고리의 다른 글
백준 17291 - 새끼치기 [Python] (0) | 2021.04.08 |
---|---|
백준 1321 - 군인 [Python] (0) | 2021.04.08 |
백준 17371 - 이사 [Python] (0) | 2021.04.01 |
백준 13263 - 나무 자르기 [Python] (0) | 2021.03.29 |
백준 8911 - 거북이 [Python] (0) | 2021.03.29 |