2021/5/1に開催されたZONeエナジー プログラミングコンテスト “HELLO SPACE”に参加しました。
最近も仕事が忙しくて正直あまり精進できておりませんが、なんとかレートが上がるようにはという気持ちで臨みました。
参加いたします。なんとかレートが上がる程度には頑張ろうかと。
— devgenjin77 (@devgenjin77) 2021年5月1日
ZONeエナジー プログラミングコンテスト “HELLO SPACE” - AtCoder https://t.co/6O6qsbTF5h
今回の結果
今回の結果は、ABDの3完で終了となりました。しかもBで大分もたついています。
で、パフォーマンスとしては、緑の下の方。結局レートはマイナスとなりましたとさ。
3完緑パフォでやや冷えでした😅
— devgenjin77 (@devgenjin77) 2021年5月1日
次にむけて頑張ります
devgenjin77さんのZONeエナジー プログラミングコンテスト “HELLO SPACE”での成績:2613位
パフォーマンス:895相当
レーティング:957→951 (-6) :(#AtCoder #ZONeエナジープログラミングコンテスト“HELLOSPACE” https://t.co/4lcAvKq5k2
振り返り
久々にAでペナを喰らってしまいました。
A問題
文字列の中に、"ZONe"が何個あるかを答える問題。
「連続する部分文字列として」というくだりを読み間違えてしまい、
”ZONeZONeZONe”が含まれていれば3、”ZONeZONe”が含まれれば2というような判定の仕方で実装してしまう。もちろんこれはWA。。
小ミスを恥じながら、愚直に実装してAC。
B問題
大分苦手な図形問題。一読してどうやって解けば良いのかよくわからんかった。
しかし、とりあえずサンプルを検証してみるとUFOと壁それぞれの距離と高さを比率で計算して、必要な高さを求めればいいんじゃないかということに気づく。
壁が複数ある場合は、必要な高さの最大値を答えにすれば大丈夫。ということでサンプルを検証したら結果的に合っていたので、そのまま提出したらACが取れました。
C問題
一読して、解法が全くよくわからず。検討内容としては、候補メンバのうち、全てのステータスについて勝るメンバがいる場合、劣る方を候補から除外することで計算量を減らせないかと考えたが、実装が追いつかず。
結局Dの方が簡単そうだということで、Cは諦めました。
D問題
ちょっと前にやった問題で、文字列を反転させるクエリは状態をフラグで管理し、最後に反転するか判定するという内容のものがあったので、その方針で実装をしてみる。
で、あとは文字の連続を消すというところの実装をして提出したところ、TLE。。
ならばということで、文字を追加するところで前の文字が同じなら、相殺するという処理を入れたらバグを仕込んでしまい、1WA。結構ボロボロの内容ながら、2ペナでなんとかACがとれましたとさ。
コンテスト後に解説をみると、、あー両端キューを使えばいいという問題でしたかと。
E問題
問題すら見れておりません。
F問題
問題すら見れておりません。
これまでの実績
今回も微マイナス。なんとも微妙な結果が続いています。
総括
今回も問題の読み違えなどで、食らわなくていいペナを喰らうなど、あまりいままでの反省が生かされていない状況でした。うーむ、全く進歩がない。。
とりあえず今週は連休。コロナの状況もあり、ほとんど家に引きこもる生活になりそうなんで、久々に時間をとって精進に勤しみたいと思います。
また、次回も頑張ります。