忍者ブログ

競プロ日記

競技プログラミングの問題を解いた感想を書きます。

[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ABC139参加

初めてコンテストに参加したぞ!


順位: 2665
パフォーマンス: 813
新レーティング: 56
差分: -


結果はABCDの4完。
最初だしレート変動もほとんどないから良かったものの、Cで2WA、Dで2WAしてしまった。
どちらも考え方も実装もほぼ問題なかったのに小さなミスが原因だ。
しかもそれになかなか気づけずに合わせて15分程浪費してしまった。
ミスのペナルティはもちろん、15分あればE問題をACにできた可能性が無くもないので細かいミスには気をつけていきたいところ。

A問題

簡単

B問題

普段のB問題と比べて難しくない・・・?
最初単純に3^nかと思って解いたら全然違う答えが出て、問題文しっかり読んでないじゃん!とちょっとパニックになって紙に書き起こした。
合計5分以上かかった。

C問題

B問題より簡単。
初回提出もB問題より早かったのだが、ミス潰せなくて20分近く使って合計25分くらい。
特に2番目のミスはなかなか気づけなかった。

C問題のミス
  1. ループ内で計算した一時変数を全体の最大値と比較代入する処理を繰り返した後、最後の出力の部分でカウント用の一時変数を出力してしまった。
  2. if文で一時変数の増加、else文で一時変数と最大値との比較、一時変数の初期化を行っていたが、ループの最後にelse文が実行されない条件式になっていたため、最後の一時変数が最大値に代入されることがなかった。

D問題

これもかなり簡単だった。
今の所B問題が突出して難しくて、CDはそれより早く正しい実装に取りかかれた印象。
簡単な問題にはミスがつきもの。
C問題より遥かにひどい・・・。
ちょっと前にこれ最近だけで3回くらいやったから気をつけようって言ったところのやつ。
初コンテストの同じ問題で2回やるかね。
なんならこれから全部long long型でやっても良いまである。

D問題のミス
  1. 答えのint型がオーバーフローしていた。
  2. 答えをlong long型にするも、そもそもint型同士の計算途中でオーバーフローしていた。

E問題

テストケースが1つだけTLEで他はACという状態だった。
曰く最悪計算量がO(n^3)になっているらしい。
自分の中では、ループ文の最初でcontinuteしたらそれはオーダーに入れなくて良いからO(n^2)という計算で、なぜTLEするのかまるで分からなかったのだが、そういうことではないらしい。
どこかのなにかの解説で、ループの最初でcontinuteするからオーダーは~みたいなことを書いていた記憶があったのだが・・・。
もっと重い処理を書いていて、continuteの部分はO(10^8)に届かない範囲で気にしなくても良いねっていうことだったのかもしれない。

F問題

D問題が終わった段階でE問題とどっちから解くか比べて、どっちもそこそこ解けそうだけどF問題はハマったらヤバそう、という考察でE問題を解きにいった。
結局解く時間はなかった。
書いてたら方針思いつくかと一応入力部分だけ書いたのだが、先に解くかどうか決めてから取り掛かった方が良いのかな。

コンテストが終わってからも考えてみたものの全然分からなかった。
象限ごとに分けて考えたいなぁと思ったまでは良いものの、その先に進めなかった。
解説動画を見てなんとか納得。
偏角ソートは幾何の問題ではそこそこ出てくるみたいなので覚えていこう。
どうやって実装しようか悩んだ結果結局実装しなかったのだが、ベクトルAとベクトルBが反時計回りに180度以内ってどう判定しようか。
ベクトル周辺の知識あんまり覚えていない。


案外ABCDは早く解けてまた成長感じた。
Eも本当にあと一歩だったので全完もそんなに遠くはないのかなという気がする。
目標の黄色に年内に届くかどうかは全く分からない。
競技プログラミング始めて休止して始めて休止して、なんだかんだでのべ3ヶ月くらいなのでまだまだ伸びしろはあると信じたい。
今週も参加したいね。
PR

コメント

コメントを書く