DP C
3つの数列から最も和が大きくなるように取りたい
ただし同じ数列から連続して取ることはできない
直前が3通りのどれであったか、を定義域とし、その場合の和を値とするDP
DP_C
PyPy 144 ms
code:python
def solve(N, scores):
for i in range(1, N):
next_score = [
max(last_score1, last_score2) + scoresi0, max(last_score2, last_score0) + scoresi1, max(last_score0, last_score1) + scoresi2, ]
last_score = next_score
return max(last_score)