BOJ:碁盤を塗り直す[1018]
4898 ワード
1.質問
整数4を1,2,3の和と表す方法は4種類ある.和を表すときは1つ以上の数を使います.構成和の数だけ順序が違うのは同じです.
1+1+1+1
2+1+1 (1+1+2, 1+2+1)
2+2
1+3 (3+1)
整数nが与えられると、nが1、2、3の和で表される方法の数を求めるプログラムが作成される.
ソース:https://www.acmicpc.net/problem/1018
2.アイデア
#1.大きさnxmで、白と黒に塗られた板紙があります.
#2.この碁盤を8×8サイズに切りたいです.
3.チェス盤には白黒の格子模様が必要だ.
#4.将棋盤を切るには、チェス盤を打つために、適切に色を修正し、格子模様を形成する必要がある.
#5.変更する色の最小値を探します.
3.コード
minefor i in range(N-7):
for j in range(M-7):
first_W = 0
first_B = 0
for k in range(i,i+8):
for l in range(j,j + 8):
if (k + l) % 2 == 0:
if board[k][l] != 'W':
first_W = first_W+1
if board[k][l] != 'B':
first_B = first_B + 1
else:
if board[k][l] != 'B':
first_W = first_W+1
if board[k][l] != 'W':
first_B = first_B + 1
repair.append(first_W)
repair.append(first_B)```
Reference
この問題について(BOJ:碁盤を塗り直す[1018]), 我々は、より多くの情報をここで見つけました
https://velog.io/@onejh96__/BOJ-체스판-다시-칠하기-1018
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
for i in range(N-7):
for j in range(M-7):
first_W = 0
first_B = 0
for k in range(i,i+8):
for l in range(j,j + 8):
if (k + l) % 2 == 0:
if board[k][l] != 'W':
first_W = first_W+1
if board[k][l] != 'B':
first_B = first_B + 1
else:
if board[k][l] != 'B':
first_W = first_W+1
if board[k][l] != 'W':
first_B = first_B + 1
repair.append(first_W)
repair.append(first_B)```
Reference
この問題について(BOJ:碁盤を塗り直す[1018]), 我々は、より多くの情報をここで見つけました https://velog.io/@onejh96__/BOJ-체스판-다시-칠하기-1018テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol