0.はじめに
B問題すら難しい感じのコンテストで、苦戦しました。
どうにかABDを正解したものの若干レートを落として
-9でした。
E問題はもう少し頑張ればACもらえそうですが
解説を丸々参考にして解いているのでここのメモは残さないでおきます・・。
1.A - Counting Passes
さすがにA問題は単純な問題で
リストを頭から見て、Lを超えている数を数える
だけの簡単なお仕事でした。
https://atcoder.jp/contests/abc330/submissions/47892558
2.B - Minimize Abs 1
正直問題の意味が全く分からず、例題をみて、
リストの値が、L以下ならL、R以下ならR、それ以外はリストの値
ではないかと、直感的に思い実装したところ
正解でした。
https://atcoder.jp/contests/abc330/submissions/47903056
3.C - Minimize Abs 2
コンテスト時は、XをDの平方根から1ずつ減らしていき
それに合うYを求める・・・という方式を思いつきましたが
TLEかと思い断念しDに行ってしまいました。
コンテスト後、解説を見たら、考え方はあっていたようだったので
改めて組みなおしつつ、微調整をしたところACをもらえました。
【実装】
1.Nの平方根をmにセット、ansに10の18乗をセット
2.iを1~mまでループ
2-1.Nからiの2乗を引いた数をpにセット
2-2.pの平方根をqにセット(qはint型に切り捨て)
2-3.ansに、以下の数の中で最小の値で置き換える
・ans
・Nからiの2乗とqの2乗をマイナスした数
・Nからiの2乗とq+1の2乗をマイナスした数
3.ansを出力して終了
https://atcoder.jp/contests/abc330/submissions/47955214
4.D - Counting Ls
NがMAX2000なので、1回くらいはNの2乗のチェック可能と思いそこから組み立て。
【考え方】
・列ごと、行ごとに”o”の数を求める。
・Sの表を端から見ていき”o”だった場合そのアドレスの
行列のoの数-1をそれぞれかけた値をansに加算
・ansを出力して終了
最初行だけ集計すればOKかなと思いチャレンジしてTLE等、無駄な時間を
過ごしたことが悔やまれます。
https://atcoder.jp/contests/abc330/submissions/47933991
以上