[白俊]9465号シール
9527 ワード
質問リンク
問題の説明
に答える
座標の最長値
座標
座標
に感銘を与える
コード#コード# import sys
def init():
n = int(ipt())
board = [list(map(int, ipt().split())) for _ in range(2)]
dp = [[0] * n for _ in range(2)]
dp[0][0] = board[0][0]
dp[1][0] = board[1][0]
return n, board, dp
ipt = sys.stdin.readline
tc = int(ipt())
for _ in range(tc):
n, board, dp = init()
for x in range(1, n):
for y in range(2):
if y % 2 == 0:
dp[y][x] = max(
board[y][x] + dp[y+1][x-1],
max(dp[y][x-1], dp[y+1][x-1])
)
else:
dp[y][x] = max(
board[y][x] + dp[y-1][x-1],
max(dp[y-1][x-1], dp[y][x-1])
)
print(max(map(max, dp)))
Reference
この問題について([白俊]9465号シール), 我々は、より多くの情報をここで見つけました
https://velog.io/@leehj8896/백준-9465번-스티커
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import sys
def init():
n = int(ipt())
board = [list(map(int, ipt().split())) for _ in range(2)]
dp = [[0] * n for _ in range(2)]
dp[0][0] = board[0][0]
dp[1][0] = board[1][0]
return n, board, dp
ipt = sys.stdin.readline
tc = int(ipt())
for _ in range(tc):
n, board, dp = init()
for x in range(1, n):
for y in range(2):
if y % 2 == 0:
dp[y][x] = max(
board[y][x] + dp[y+1][x-1],
max(dp[y][x-1], dp[y+1][x-1])
)
else:
dp[y][x] = max(
board[y][x] + dp[y-1][x-1],
max(dp[y-1][x-1], dp[y][x-1])
)
print(max(map(max, dp)))
Reference
この問題について([白俊]9465号シール), 我々は、より多くの情報をここで見つけました https://velog.io/@leehj8896/백준-9465번-스티커テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol