征服BOJ分割:カラーペーパーの作成(2630)
www.acmicpc.net/problem/2630
問題の定義0は白、1は青です.各色に何枚の正方形の紙を作ることができるかを見つけます. の例では、9個の白色紙と7個の青色紙を作成することができる.
正しいコード戻り~
問題の定義
正しいコード
n = int(input())
paper = []
for i in range(n):
paper.append(list(map(int, input().split(" "))))
n = 8
paper = [[1, 1, 0, 0, 0, 0, 1, 1],
[1, 1, 0, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 0],
[1, 0, 0, 0, 1, 1, 1, 1],
[0, 1, 0, 0, 1, 1, 1, 1],
[0, 0, 1, 1, 1, 1, 1, 1],
[0, 0, 1, 1, 1, 1, 1, 1]]
result = []
def find_square(x, y, n):
color = paper[x][y]
for i in range(x, x+n):
for j in range(y, y+n):
if color != paper[i][j]:
find_square(x, y, n//2) # 좌 상단 정사각형
find_square(x, y+n//2, n//2) # 좌 하단 정사각형
find_square(x+n//2, y, n//2) # 우 상단 정사각형
find_square(x//2, y//2, n//2) # 우 하단 정사각형
return
# code gets here only when color == papercell(x,y) ~ papercell(x+n, y+n)
if color == 0:
result.append(0)
if color == 1:
result.append(1)
find_square(0,0,n)
print(result.count(0)) # 12개의 흰색종이
print(result.count(1)) # 7개의 파란색종이
Reference
この問題について(征服BOJ分割:カラーペーパーの作成(2630)), 我々は、より多くの情報をここで見つけました https://velog.io/@yozzum/분할정복-BOJ-2630テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol