[白俊]16967:アレイの復元
1491 ワード
インプリメンテーション
アレイの復元
问题をよく読んでください.2 4 1 1
1 2 3 4 0
5 7 9 11 4
0 5 6 7 8
もしあるならば、A列はx 1格y 1格を移動して、そして以下の変形を行います:7, 9, 11, 4
5, 6, 7, 8
この図では、重複する部分はx+h,y+wの範囲で7,9,11である.
したがって、「(i,j)」が2つの配列に含まれている場合、Bi,j = Ai,j + Ai-X,j-Y
はい.「条件により、A列は以下のように更新される.
最初は画像だけを見ていて問題がよく見えませんでしたが、Ai,j = Bi,j + Bi-X,j-Y
ずっと間違っていたこの問題は次の反例で知ることができる.
3 3 1 1
1 1 1 0
1 3 2 1
1 2 3 1
0 1 1 1답이 다르게 나옴 ~~암튼 문제를 잘 읽자 멍충아 ~~
import sys
input = sys.stdin.readline
h, w, x, y = map(int, input().split())
B = []
for i in range(h+x):
B.append(list(map(int, input().split())))
A = [[0]*(w+y) for _ in range(h+x)]
for i in range(h+x):
for j in range(w+y):
# 겹치지 않는 부분은 그대로 들어감 , 겹치는 부분은 B 배열에서 A 배배열의 x, y만큼 돌아가서 빼줌
if x <= i < x+h and y <= j < y+w:
A[i][j] = B[i][j] - A[i-x][j-y]
elif i < x or i >= x+h:
A[i][j] = B[i][j]
elif j < y or j >= y+w:
A[i][j] = B[i][j]
for i in range(h):
for j in range(w):
print(A[i][j], end = ' ')
print()
Reference
この問題について([白俊]16967:アレイの復元), 我々は、より多くの情報をここで見つけました
https://velog.io/@jinii/백준-16967-배열-복원하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
2 4 1 1
1 2 3 4 0
5 7 9 11 4
0 5 6 7 8
7, 9, 11, 4
5, 6, 7, 8
Bi,j = Ai,j + Ai-X,j-Y
Ai,j = Bi,j + Bi-X,j-Y
답이 다르게 나옴 ~~암튼 문제를 잘 읽자 멍충아 ~~
import sys
input = sys.stdin.readline
h, w, x, y = map(int, input().split())
B = []
for i in range(h+x):
B.append(list(map(int, input().split())))
A = [[0]*(w+y) for _ in range(h+x)]
for i in range(h+x):
for j in range(w+y):
# 겹치지 않는 부분은 그대로 들어감 , 겹치는 부분은 B 배열에서 A 배배열의 x, y만큼 돌아가서 빼줌
if x <= i < x+h and y <= j < y+w:
A[i][j] = B[i][j] - A[i-x][j-y]
elif i < x or i >= x+h:
A[i][j] = B[i][j]
elif j < y or j >= y+w:
A[i][j] = B[i][j]
for i in range(h):
for j in range(w):
print(A[i][j], end = ' ')
print()
Reference
この問題について([白俊]16967:アレイの復元), 我々は、より多くの情報をここで見つけました https://velog.io/@jinii/백준-16967-배열-복원하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol