0927アルゴリズム11726 xNタイル
質問:https://www.acmicpc.net/problem/11726
イニシャル構想プロセス室はすでにSWEAでこの問題を解決した. dp[i] = dp[i - 1] + dp[i - 2] 最終コード
dp[i-2]では、横並びのタイルを2枚追加するだけです.
dp[i−1]の場合、起立したタイルを1枚貼ることを考慮すると、以下のすべての場合の数を算出することができる.
したがって,このようにDPを適用すれば,答えを見つけることができる.
イニシャル構想プロセス
import sys
input = sys.stdin.readline
num = int(input())
dp = [0] * 1001
dp[1] = 1
dp[2] = 2
for i in range(3, num + 1):
dp[i] = dp[i - 1] + dp[i - 2]
if dp[num] < 10007: print(dp[num])
else: print(dp[num] % 10007)
DPはなぜこうなったのか.dp[i-2]では、横並びのタイルを2枚追加するだけです.
dp[i−1]の場合、起立したタイルを1枚貼ることを考慮すると、以下のすべての場合の数を算出することができる.
したがって,このようにDPを適用すれば,答えを見つけることができる.
Reference
この問題について(0927アルゴリズム11726 xNタイル), 我々は、より多くの情報をここで見つけました https://velog.io/@lactea94/0927Algorithm117262xN타일링テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol