白駿9461波半数列
https://www.acmicpc.net/problem/9461
前のdp問題を解いたら、これは簡単だと思います.
これはNが5を超える限り[N-1]+[N-5]の値である.
dpは計算値を繰り返したくないのでappendは使えないことに気づき、そうすべきです.
前のdp問題を解いたら、これは簡単だと思います.
これはNが5を超える限り[N-1]+[N-5]の値である.
T = int(input())
dp = [0] * 101
dp[0] = 1
dp[1] = 1
dp[2] = 1
dp[3] = 2
dp[4] = 2
dp[5] = 3
dp[6] = 4
dp[7] = 5
dp[8] = 7
dp[9] = 9
for _ in range(T):
N = int(input())
if N < 11:
print(dp[N-1])
else:
for i in range(10, N):
dp[i] = dp[i-1] + dp[i-5]
print(dp[N-1])
最初はappendでやっていましたが、結果はいつも変なので、なぜこうなったのか悩んでしまいました.その結果,appendを用いるとリストが永久に変化し,数がappendを繰り返す現象が現れることが分かった.dpは計算値を繰り返したくないのでappendは使えないことに気づき、そうすべきです.
Reference
この問題について(白駿9461波半数列), 我々は、より多くの情報をここで見つけました https://velog.io/@chss3339/백준-9461-파도반-수열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol