イノたまごラボ・あのぶる の「こんなの作ったよ!」

「イノたまごラボ」はひとり同人サークルのようなものです。今のところ同人誌は作っていませんが、ソフトウェアからイベントまで、心惹かれたものを細々と。

1日1ACチャレンジ 2023-01-01の週

あけましておめでとうございます🎍
今年も元気に1日1ACチャレンジやっていきます。

ルール(?)

  • AtCoder ProblemsでRecommendされた問題のうち、Moderate以上の難易度*1のものを1問以上解く
  • 日曜日スタート、土曜日はABCがあるので基本お休み(3ACできるよね、という自分への圧)
  • 眠さに負けてStreakが切れてもめげない。また次の日やればいいじゃないの精神
    • 虚無埋め*2を考えるくらい疲れてるなら寝る

今週のおすすめレート: 832

要するに日曜に問題を解こうとしたらリストの一番上にあった問題のレート(自分のレートに依存するのでABCにRatedで参加する度に変わるはず)

そろそろRecommend問題を解こうと思ったんだけど、確認してみたら典型問題で自力解答できなかったのが結構あったのでリトライしてみることにしました。全21問。

直近のABC (AtCoder Beginner Contest 283)

2022年最後のABCであり、色々波乱のあったコンテストでした。

ABCDと異様なハイペースで解き終わり、E問題にうんうん唸っていたら終了間際に質問で制約違反のテストケースの報告が上がり、unratedの可能性があるということで一気に気が抜けてしまってそのまま終了。ただし、別にその質問があってもなくてもE問題が解けなかったことに変わりはないのですが。以前に友人がコンテストに初めて参加した回がトラブルで全体unratedになってしまったそうでものすごく気が抜けた、と言っていたのを思い出し、これは確かにとてつもなくテンション下がるなと実感を込めて感じました。

というか多分たまたま制約違反でエラーになるコードを提出したとか偶発的なきっかけはあったのでしょうが、コンテスト時間内に制約違反を見抜いて端的に指摘出来た参加者の方が凄い。(実際凄い人だったらしい)
賞金ありの企業コンだし、翌日はAGC*3だし、何というか、いろんな人が気の毒になるコンテストでした。

個人のパフォーマンスとしては歴代2位タイを叩き出し、順調に次回入緑ワンチャン圏内で2022年を終了。コンテストに参加し始めた頃には年内入緑出来たら御の字と思っていたので、2ヶ月空白期間があってのこれならかなり上々の結果と言えます。
次回、だいたい900以上のパフォーマンスが出せればレーティング800を超えるみたいなので、この勢いで今年早々に入緑したいところ…!

やった問題

2023/01/01

新年早々でアレなんですが、前日もちょっと体力使い果たしてアレだったので、年末までやってた典型問題で自力で解けなかった分のピックアップだけやってお休み。

2023/01/02

競プロ典型 90 問: 001 - Yokan Party(★4)

atcoder.jp

  • 自力AC? 🙅
  • 所要時間: 1時間40分

リトライシリーズ冒頭からさっそくずっこける。とは言え基本的な考え方はさすがに合っていて、何というか二分探索の検索範囲の取り回しでわちゃわちゃしてテストケース2つが通らず過去のACコードを見る形でAC。二分探索の基本的な形を叩き込む必要がありそう。

2023/01/03

競プロ典型 90 問: 003 - Longest Circular Road(★4)

atcoder.jp

  • 自力AC? 🙆
  • 所要時間: 20分

これはしっかり自力で行けました。木の走査を2回やって直径を求める問題。
最初のノードの訪問済みフラグを立て忘れてしょうもないWAを出したのちさっくりAC。

2023/01/04

ねむみがすっげえのでお休み。次の日は仕事始めだったのでむりしないほうがいい。

2023/01/05

諸事情により急ぎでパルデア渡航する必要があったためお休み。オレンジアカデミーの生徒になりました。
予約までしたのに全然触れてなかった……

2023/01/06

競プロ典型 90 問: 008 - AtCounter(★4)

atcoder.jp

  • 自力AC? 🙆
  • 所要時間: 23分

多分DP、とツイートしてから解説読んだらDPだったよかった。

前回解いたときのコメントを眺めてたら消化不良を起こしていた問題だったらしい。その割にわりかしすんなり解けた。
入力で与えられた文字列を比較文字列atcoderと1文字ずつ順に比較していって、一致したときにその直前までの文字列で1文字手前までの文字列を作る組み合わせが何通りあるかを足していくスタイル。文字列を最後まで探索し終わったときのdp[6]の値が答えとなる。

これ、検索文字列atcoderが全部違う文字だったから理屈さえ消化出来れば比較的楽に解けたものの、文字列中に同じ文字が入ってたら地味にややこしくなりそう。少なくとも一次元のデータ構造にまとめることはできないと思う。多分★4なんだろうけどdiffが100くらい変わりそう。

*1:もしくはそれに近い難易度

*2:Streakをつなぐためだけに自分の実力に対して極端に低難易度のコードを解くこと

*3:AtCoder Grand Contestのことで癖の強いCM(地味に好き)を流すガラスメーカーは関係ない