Scrivener"を解いてみたメモ。自分の方針は・trie木を作る。TypeはO(1)(であってほしい)・ある時点でどこにいるか、ポインタを配列に入れておく。これでUndo操作はO(1)。・ある時点で、rootから辿って(P+1)文字目は何か?trie木を今いる方向に辿るとか、簡単そうで簡単じゃない(O(1)では無理的な意味で)。root方向に快速、急行、特急で向かうポインタを各ノードに持たせればいいんだろうとは思うんだけどどうやって計算する?ってところで。20要素の加算でrootまでの経路上の任意のノードに到達できるし。最大29要素の加算が必要になる(=1.5倍弱の演算が必要)。方針は正しいはずだが、サンプルケースの一部で1秒を切れない。したけどまだ切れない。Nodeをクラスにするのをやめて、各要素を配列に個別に格納して使う実装(定数倍の高速化)にしたら1秒を切れた。これを「永続データ構造」とか「永続リスト」とか言われるのはまだピンと来てない。001Petrozavodskって何だ?というのはさておき。土曜深夜に5時間コ...2013-08-12ICFPC2013参戦メモぼっち参戦しました。»@naoya_t自然言語処理とか機械学習とか競技プログラミングとか。競プロ精進記録は別ブログ🔒に移しました。yukicoder遅延伝搬セグメント木の復習をしたので、beetさん作問のセグ木コンテスト(2019/9/6開催)の問題を解いてみた。サウスタワー23Fなんで自分に参加権が来たのかよく分からないオンサイトイベントに参加してきた話。146のQ4でN個の点の3次元マンハッタン距離の最大値を求める問題が出たのでメモ。"なお、接尾辞配列を構成するアルゴリズムは他にも多数存在しています。14:00-FORCIAさんで開催されたオンサイトのゆるふわコンテストに参加。過去問コンテスト後に読んだ問題たち。ここで出てくるテクニックもこの機会にぜひ身につけておきたい。