りつくろいす

英語が苦手です

ABC125に参加しました

はじめに

結果はABDの3完でした

C問題が難しくてTLEが取れませんでした

Twitter見てると累積和の応用で解けるらしいのでその辺をよく勉強していなかったことが悔やまれます

以下僕の解法です

 

A問題

0.5のことは考えてやらなくてもいいです

[T/A] * Bで答えが出ます

 

B問題

V - C < 0の時は宝石を買っても損してしまうので選ばないと考えます

後は選んだやつを全部足してやればX - Yの最大値が得られます

inputの仕方を間違えないようにしましょう

C問題

問題を見てすぐに、「ははーん、書き換えるやつは他の入力された数字にすればいいから、結局抜いてしまえばいいわけだな」と思って意気揚々と考え始めましたが、考えても考えてもO(N^2)から小さくすることが出来ずTLE

解答はないです

すみません

累積和に関する知識が不足しているので勉強します

D問題

あるパネルをひっくり返すとそれに隣接するパネルもひっくり返るようなミニゲームしたことありませんか?

今回は正が表、負が裏と考えて、右隣のやつが連動すると考えて実験していくと、負の数または0が偶数個入力されたときは全ての値を正の数または0にすることが出来ます

また奇数個の場合はどれかが負の数または0を取るので絶対値が小さい奴を引いてやればいいです

結局解答は

偶数個の時

|A1|+|A2|+......+|An|

奇数個の時

|A1|+|A2|+......+|An| - 2 * min(|A1|, |A2|, ......,|An|)

となります

32bit整数型に収まらないこともあるらしいのでlong long型にしましょう

終わりに

f:id:seiritsu:20190428001908p:plain

ABC125

緑パフォ、やったぜ。

初の時間中D問題ACでした、うれしい

最近は解ける問題が増えてきたので参加するのが楽しいです

今回の競技時間中、順位表から見てD問題をACしてる人の数がとても多く、問題文を見てみたら簡単だったので解きましたが、そもそもDも見ておく癖をつけておくべきだったと思います

今後の戦略に生かしていくことが多く見つかったABCでした

GW頑張って精進してゆきます

ここまで読んでいただきありがとうございました