白駿10942パリン症候群?
質問する
https://www.acmicpc.net/problem/10942
コード#コード#
import sys
n = int(input())
lis = list(map(int, input().split()))
m = int(input())
result = ''
dp = [[0]*n for _ in range(n)]
for i in range(n):
left = i
right = i
while left >= 0 and right < n and lis[left] == lis[right]:
dp[left][right] = 1
left -= 1
right += 1
if i == n-1:
continue
left = i
right = i+1
while left >= 0 and right < n and lis[left] == lis[right]:
dp[left][right] = 1
left -= 1
right += 1
for i in range(m):
s, e = map(int, sys.stdin.readline().rstrip().split())
result += str(dp[s-1][e-1])+'\n'
print(result)
に答える
dpを2次元配列に設定し、入力リストのsからeがパリンdromであればdp[s][e]を1に変更します.
入力したリストを調べて、二重ポインタのパリンドロンを使っているかどうかを確認して、dpテーブルを更新してくれましたが、実はこれがdpで解けたのか分かりません.
Reference
この問題について(白駿10942パリン症候群?), 我々は、より多くの情報をここで見つけました https://velog.io/@josajang98/백준-10942-팰린드롬-drkf1jcpテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol