[BOJ]10844簡単な階段
簡単な階段
0以外のすべての数字は前にすることができます.
このとき1~8の後ろから来ることができる数字は2種類(数字±1)である.
しかし、9後には数字8しか来ません.
一番後ろに0の数-10がある可能性があります.(1個)
一番後ろに1が現れる可能性のある状況の数-21.(1個)
一番後ろに2の数-12,32が現れる可能性があります.(2個)
このように3桁を求めると、上と同じ表が出てくるので、ルールが見つかれば、
この位置の対角線位置の数字の和であることが分かる.
に答える
0以外のすべての数字は前にすることができます.
このとき1~8の後ろから来ることができる数字は2種類(数字±1)である.
しかし、9後には数字8しか来ません.
桁数が2の時を見てみましょう。
一番後ろに0の数-10がある可能性があります.(1個)
一番後ろに1が現れる可能性のある状況の数-21.(1個)
一番後ろに2の数-12,32が現れる可能性があります.(2個)
このように3桁を求めると、上と同じ表が出てくるので、ルールが見つかれば、
この位置の対角線位置の数字の和であることが分かる.
コード#コード#
N = int(input())
dp = [[0]*10 for _ in range(N+1)]
for i in range(1, 10):
dp[1][i] = 1
MOD = 1000000000
for i in range(2, N+1):
for j in range(10):
if j == 0:
dp[i][j] = dp[i-1][1]
elif j == 9:
dp[i][j] = dp[i-1][8]
else:
dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1]
print(sum(dp[N]) % MOD)
Reference
この問題について([BOJ]10844簡単な階段), 我々は、より多くの情報をここで見つけました https://velog.io/@zioo/BOJ10844쉬운계단テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol