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ペナを出した
いらない処理を削ってぎりぎり通った
総括
Aの反省:この問題でペナを出したのは痛かった……よく考えよう
Eの反省:総和をすぐ求めようとするのはやめよう
それはそれとして、これだけ頑張って緑パフォなのはしんどい……
- とはいえ、これだけの頑張りを必要とするということは、実力が低いということ
-
- 実力とは、競プロ慣れや、計算量の見積もり、あるいは頻出ACや頻出WAを頭に入れておくこと
余談
数年前からMyricaを自己流にカスタムして使っていた
- 一部の記号を使うとターミナルの表示が崩れたりしていたが、だましだまし使っていた
- が、モダンではないなあと感じていた
- 日本語ユーザ向けのプログラミングフォントを探したところ、HackGenがあった
-
- 2019年にたわら氏によってリリースされたフォント
- 導入したところ、前述の表示崩れもなくなり、快適
コメントが濃い緑色だったため、黒背景に溶けるように感じた
- 以前は気にならなかった。視力の低下?
- そのため、VSCodeのコメントの配色を
#FF8C00
に変更した。 -
- カラーコードは拡張機能のBetterCommentsをパクった。参考