ABC121
AtCoder Beginner Contest 121
にエントリーした。この時同時にグラブルの生放送をしていたのでこれを見ながら問題を解いていた。それぞれの問題の感想とかをメモしたり、次までにやっておくべきことを決めたりしたい。全部C言語で挑戦した。
A - White Cells
A問題らしくシンプルな問題だった。流石にこれはできた。
B - Can you solve this?
これも難しい問題ではなかった。多項式に当てはめてから条件を満たせば結果に返す変数をインクリメントした。最後の出力部を printf じゃなくて scanf にしていて、何故か気づけずめちゃくちゃ時間を食った。生放送を見ていたせいにしておきたい。
C - Energy Drink Collector
この問題から解けなかった。価格が低い順にドリンクを買っていけばいいのは分かるんだけど、Cで値段と数量を紐づけしたままソートする方法が思いつかなかった。
この時やる気があればネットで頑張って調べたりするんだけど、この時はそういう気分でもなかった。じゃあ次からどういう対策取ればいいのかというと、こういうときのためにコードを作って貯めておくか、C++も使えるようにならないとなと思う。
他の人のコードを見てみた。
こういう時は構造体にして、qsort 関数に使う評価関数が値段を参照すればいいらしい。
こういうのはやはり発想が足りない。
D - XOR World
解説を読んでなんとなく解き方は理解したけど、実装方法がいまいち理解できていない。
特に10進2進変換とか、XOR処理のところとかがいまいちどうすればいいのか分からない。こうなったらとりあえず他の人のコードを読むことに限るね。
...めちゃくちゃ簡単な話だったらしい。Cでビット演算処理を全くしたことがなかったのでビット演算子を知らなかった。そういえばよく右ビットシフトとかを使っている人を見かけていた気がする。あと問題文をしっかり読んでいなくて、2進数で表示するのかと思っていた。
ビット演算しても2進10進変換とは別なのが良い。最近アセンブリ言語で毒されたので高級言語に帰ってこないといけないなと思った。
さいごに
今回の結果は2770位だった。最初出遅れているのはいつもこの時間にふろに入っていて、開始時間には間に合っていないから。まだ自分のレベルはC問題が解けるかどうかのあたりなので、これを確実にC問題が取れるレベルにしたい。
このコンテストが終わったあとのレートは272だった。あと3回参加しないと暫定レートのままなので機を見てどんどん参加したいなと思う。
こんな感じで参加するたびに感想と反省を重ねていればスキルは伸びてくれるかな、とか考えたりしている。
では。
コメント
コメントを投稿