0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【ポエム】ABC302参加記

Posted at

ABC302に参加した

  • ABC299に参加していたが、DDoS攻撃によりunratedになった
  • そのため、rated参加はABC273(2022年10月)以来

A - Attack

やるだけ……ではなかった
Pythonの浮動小数点はdoubleなのでこの条件だと誤差が出る
サンプルすらACできないのを見逃すのはよくなかった

B - Find snuke

とても実装が重かった
最初に外枠を4文字分意味のない文字で埋めたのは良かったが
4重ループくらいになってしまったのは良くなかった
itertoolsを使いこなせばネストを減らせたり、関数定義を一個減らせたと思う

C - Almost Equal

制約を見た瞬間、重い総当りを疑った

  • 結果として当たっていたのでよかった
  • itertoolsは便利

この問題の注意点として、違う文字の数が1文字である必要があること
違う文字の数が2になった瞬間にreturnするアドリブを入れたのは、ACに寄与したか分からないので、なんとも言い難い

D - Impartial Gift

コンテスト中の思考

  • 想定解は尺取りのような気がする
  • しかし、この制約なら$O( N\log N)$でも間に合う
    • 結果として二分探索で間に合ったのでよかった
    • めぐる式二分探索は思考コストが少ないので好き

E - Isolation

グラフの連結をsetで管理するまでは想定解通りだった
想定解はsetの更新のたびにansをプラマイすること

  • そこまで考えが及ばず、総和を求めてしまった
    • 総和を求めるために平方分割を行った
    • Nの最大値が300000だったため、長さ548の配列を準備した

結果、間に合わず1ペナを出した
いらない処理を削ってぎりぎり通った

総括

Untitled.png
Untitled 1.png

Aの反省:この問題でペナを出したのは痛かった……よく考えよう
Eの反省:総和をすぐ求めようとするのはやめよう
それはそれとして、これだけ頑張って緑パフォなのはしんどい……

  • とはいえ、これだけの頑張りを必要とするということは、実力が低いということ
    • 実力とは、競プロ慣れや、計算量の見積もり、あるいは頻出ACや頻出WAを頭に入れておくこと

余談

数年前からMyricaを自己流にカスタムして使っていた

  • 一部の記号を使うとターミナルの表示が崩れたりしていたが、だましだまし使っていた
  • が、モダンではないなあと感じていた
  • 日本語ユーザ向けのプログラミングフォントを探したところ、HackGenがあった
    • 2019年にたわら氏によってリリースされたフォント
  • 導入したところ、前述の表示崩れもなくなり、快適

コメントが濃い緑色だったため、黒背景に溶けるように感じた

  • 以前は気にならなかった。視力の低下?
  • そのため、VSCodeのコメントの配色を#FF8C00に変更した。
    • カラーコードは拡張機能のBetterCommentsをパクった。参考
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?