アットウィキロゴ
競技プログラミング用 知識集積所
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

競技プログラミング用 知識集積所

ABC438D - Tail of Snake

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

B以下レベルの内容は省略

考え方

問題文からはパっとはわかりづらいが、冷静に読んでみれば典型的な動的計画法
i番目のパーツまで使ったときの、「最後を頭として使う」「最後を胴として使う」「最後を尾として使う」それぞれでの最大値を求めていけばよい。
最後のパーツまで計算を終えたときの「最後を尾として使う」の値が答え。

解答例


注意点

初期値に注意

1パーツ目の尾らしさが非常に高い場合、動的計画法の初期値を-1などにすると計算が壊れる場合がある。
2番目の尾の価値を足してもマイナスになるよう、-10^6より小さい値にしておくこと。

long long型を使う。

答えや動的計画法の計算途中の値はint型に収まらない場合がある。

別解

タグ:

動的計画法
最近更新されたスレッド
ウィキ募集バナー