SRM715 Div1Easy MaximumRange

Blog >> SRM715 Div1Easy MaximumRange

URL

https://community.topcoder.com/stat?c=problem_statement&pm=14613

概略

+-からなる文字列がある.+はインクリメント,-はデクリメントに相当する.初期値を0として左から操作を行い,操作中の最大値と最小値の差がスコアになる.

与えられた文字列の部分列についても同様に操作が行えるとき,スコアの最大値はいくらであるか.

方針

+または-のみを取ることで簡単にスコアを最大化できます.最大値と最小値のペアを $(\max, \min)$ と表すことにします.+のみが $A$ 個ある操作列は $(A, 0)$ で,スコアは $A$ です.ここに-を $B$ 個加えてみましょう.スコアを上げるには最小値を小さくするしかなく,相殺する位置には置けません.

  • 先頭に加えたとき : $(\max(A - B, 0), -B)$
    • スコア : $\max(A, B)$
  • 殿に加えたとき : $(A, \min(A - B, 0))$
    • スコア : $\max(A, B)$

が考えられますが,これは結局,+または-のみを取れば良いことを示しています.

[展開する]
 
comments powered by Disqus