タイトル説明
長さN AI、今度は動作の両方の配列
各操作は、Sを獲得し、現在のプレーヤーながら、Sの接頭辞と交換、その後、1より大きいプレフィックス長を選択し、そのSを計算することです。
ときに一つだけの要素、ゲームオーバーです。
この値を計算するために、相手の得点 - 双方は、あなたのスコアを最大化します。
サンプル入力と出力
入力#1
3 2 4 8
出力#1
14
入力#2
4 1 - 7 - 2 3
出力#2
- 3
問題解決のためのアイデア
ただ、DPのqwqから抜け出します
ACコード
const int型 N = 1E6; int型のn; INT [N]、K。 INT メイン(){ scanf関数(" %のD "、&N) 以下のために(int型 i = 1 ; iが<= N; iが++ ){ int型HH。 scanf関数(" %のD "、&HH)。 [i]は [I-= 1 ] + HHと、 } INT ANS = [N]。 以下のために(int型 I = N- 1、I> = 1 ; I - )のk =のANS、ANS = MAX(ANS、[I] -K)。 printf(" %d個の\ n " 、K)。 リターン 0 ; }