競プロ

AtCoderで解いた問題とか AtCoder:Autumn_A

ABC103

解けた問題の解説と詰まったとこのまとめ

今回は3完なので解説はCまで

A

要約するとA1,A2,A3が与えられるとき任意の2組の差の絶対値の和をとって最小値を探す問題

A1≦A2≦A3 と並び変えると(A3-A2)+(A2-A1)が最小になる

よって答えはmax(A1,A2,A3)-min(A1,A2,A3)

 

B

文字列S,Tが与えられてTの先頭の文字を最後尾に移していったときにSと一致するかを調べる

二重ループを組んでS[i]と比較するT[i+j]を一つずつずらしながら確認すればAC

ここでi+j(mod S.length())にして最後尾の次に最前列に移動させてあげる

 

C

f(n)=Σ(n mod a[i]) の最大値を求める

max(X mod i)=i-1なので和をとって終わり 

 

D

一直線に並んだ橋のどこかを落として任意の地点を通行不可にする問題

前半のサンプルしか通らなくて無理

要望同士を比較して共通部分を抜き出す方法だと無理だった

これだと貪欲すぎる?都合の悪い要望の並び順がきついっぽい