ブログ名

競技プログラミングやお歌のお話をする高菜です。

2021-01-01から1年間の記事一覧

Convex hull trick などの実装に応用のある、Rust の BTreeSet / BTreeMap 1本だけで、2通り以上の二分探索を実現する方法

イントロ Convex hull trick では直線の列を、傾きに関して単調増加になるように管理するのですが、二分探索の検索クエリは傾きだけでは足りません。次のように2種類の二分探索が欲しくなります。 傾きに関して二分探索 最小を達成する区間に関して二分探索…

[暫定]Rust の `Box` を使った易しい平衡二分木の実装

イントロ 平衡二分木は、いろんな意味で難しいです。アルゴリズム自体は(難しくはあるもののお)そこまで長大とまではならないのですが、細かい機能を整備していくとどんどんコードが長くなっていく印象です。 そこでこの記事では、「挿入・削除・併合・分…

歌ってみたの機運について

みなさま ABC 229 お疲れ様です。決意表明の流行する今日このごろです。 さて、実は私の趣味は競技プログラミングだけではありません。たとえば最近はお歌にお熱です。長らく一人で楽しんでいたのですが最近は、やはりみなさまにも聴いていただきたい!人気…

整数のまま行う偏角ソート(行列式のあれです。)の実装バリエーションの検討とご紹介です。

ねぼこさんのこちらの記事に触発され、私の方法もご紹介したい! という気持ちになりました。 nebocco.hatenablog.com この記事の初めの方は Rust でのコーディングを主眼においてご説明しておりますが、最後の方に C++ 向けのお話も追記させていただきまし…

`next_permutation` と同様に列挙できるもの一覧

1. 置換(permutation) 長さ $N$ の数列 $A$ の置換を列挙します。辞書順で $A$ より大きな最小の置換 $A$ があればそれを求め、なければ報告するアルゴリズムが作れればよいです。 C++ に std::next_permutation がありますね。言わずとしれた C++ ナニコ…

バタフライ演算で高速化できるものまとめ

TODO: バグっているし読みづらいので書き直す TODO: 問題例追加 Editorial - AtCoder Regular Contest 132 を集合、 を要素数 の全順序有限集合 、 を写像とします。 この が写像族 の合成 で表し、さらに各 が写像族 の直積(すなわち (for )が成り立つ)…

Convex min-plus convolution を実現するアルゴリズムの実行時間を比較するベンチマークを作りました。

GitHub のレポジトリの REDME.md にすべてが書いてあります。はてぶはそれの宣伝です。みなさまよろしければご協力くださるととても嬉しいです。 github.com 今後 range query などもっとポピュラーなあたりに手を出しても良いかもですね。いろいろなベンチ…

Windows を購入したは良いものの邪魔なので徹底的に隔離しました。

私はもともと Linux (Ubuntu 20.04 LTS) しか使っていませんでした。用途は 競技プログラミング ソフトウェア開発 ツイッター 動画鑑賞 です。事足りました。 しかし Windows も欲しくなりました。デュアルブートには HDD がたりなさそうなのもあり、PC を購…

Low-link と関節点・橋、そして 2-連結成分・2-辺連結成分分解について

案外この形でまとめている記事が見つからなかったのと、ライブラリの上手な作り方を思いついてしまいまったのとで、執筆意欲です。 他の既存記事 Low-link と関節点・橋、2-辺連結成分分解まではかなり記事があるのですが、 2-連結成分分解はなかなか見つか…

2021 年のお盆は『コンピュータ代数ハンドブック』を読んで少しだけ基礎に詳しくなりました。

休暇シーズンには書籍を開きがちことながたかなと申します。今年のお盆も豪華9連休ということで予てよりのこちらです。ででーん。 コンピュータ代数ハンドブック作者:J.フォン ツァ ガテン,J.ゲルハルト朝倉書店Amazon …… 私が購入する本だいたい購入後に a…

髪を切っていただきました。

今朝の私は髪が長かったです。そこで、美容院で髪を切っていただきました。すると髪が短くなりました。具体的には、胸にかかるくらいの長さだったのが肩にかからないくらいの長さになりました。すごいですね。伸びるのには数年かかるのですが、切るのには、…

procon-bundler を作り直しました。

予め用意したソースコード(ライブラリ)を使いたい! しかしソースコードを 1 ファイルにして提出いといけませんね…… そんな私の需要に答えたのがこちら、procon-bundler なのですが、この度ソースコードを全消しして書き直しましたのでお知らせいたします…

キーエンス プログラミング コンテスト 2019 F - Paper Cutting の公式解説とは異なる、クローズドフォーミュラによる解法

問題リンク atcoder.jp 解法 ( h + w ) ! / ( w + w - k ) ! 通りのカットが等確率で起こるとして、スコア X の期待値 E [ X ] を計算しましょう。これは実は Θ ( lg p ) (除算が律速)で解けます。 各 1 ≤ i ≤ k に対して、第 i 回のカットによるスコアを …

CADDi 2018 F - Square の 2 状態 DP による解法です。

問題へのリンク atcoder.jp 解法 5 重対角成分のみ考えればよいというところまで、公式解説と同じです。公式解説では(例示にすぎませんが)5 マス分の状態を管理するとよいとありましたが、私は 1 マス分で解けましたので共有させていただこうかとです。 ケ…

AtCoder Grand Contest 050 (Good Bye rng_58 Day 1) B - Three Coins の想定解とは異なる解法

atcoder.jp 長さ n の 0 と 1 の列であって、000 -> 111 と 111 -> 000 を用いて 00000..... から作れるものを、実行可能解と呼び、1 の部分に対応する a _ i の合計をそのスコアと呼びます。まずは実行可能解の構造を見てみましょう。 実行可能解は次の 2 …

サイコロの目の最大値から理解する subset convolution

1 から 6 の目が均等に出るサイコロを 2 回振ったとき、最大値が 4 になる場合の数は 36 個中いくつでしょう。そうですね。7 通りです。どのように計算しましたでしょうか。4 × 4 - 3 × 3 と計算した方、おめでとうございます。高校入試典型完全理解の方です…

ボンカレーが 50 食届きました。

小売店で発注ミスをしてしまった方の気持ちが、今ならばわかります。 どーん! 50 食のボンカレー あの!?!? だって数量 10 って書いて 10 袋届くなんて思わないじゃないですかぁああ!!! あの!?!? (ここ大暴れカット) ……ぜぇ、ぜぇ。ひとしきり…

活動報告 - 2021 年 3 月

3 月の成果 問題埋めは基本的に 600 点に注力しましたが、3 問だけ解けなくて残ってしまいました。残ったのはこちらの 3 問です。ちょっと辛くなってきましたので、来月は読書とゆる 700 点でしょうか。(700 もさくっと通せるのはなくなってきてしまいまし…

今日はお仕事を早退しました。

第一章 ドキュメンタリー 時は 16:30、急激に襲う吐き気。 これはなんですか? 午前中は万全の状態だったのですが、アッまた俺なにか食べちゃいました?笑 ともあれ動くのもやっとな状態、体調には大きな波があるよでしたから、動ける瞬間を見計らって call …

おいしいキャベツの育て方

私はキャベツです。美味しいキャベツがいかに培養され、出荷するのかをキャベツ視点でお送りしたいと思います。 きっかけ 「純粋培養競技プログラマが就職して1年」みたいなブログがよみたい。どんなことを身に着けて何が出来るようになったかみたいな。— c…

活動報告 - 2021 年 2 月

2 月の成果 AtCoder Scores 1 月と 2 月の比較です。400 点、500 点を埋め終わりました。 2021-01 600点以下 2021-02 600 点以下 こういう図のほうがわかりやすいですかね。1300 まで入りますし。 2021-02 1300 点以下 コンテスト参加 AtCoder のコンテスト…

2021 年 1 月の反省と 2 月の計画

1 月について ngtkana.hatenablog.com 進捗報告 600 点以下埋め これ中心でやるつもりだったのですが、結局序盤に 300 以下埋めてご無沙汰でした。 600点以下 700 点以上埋め 700 点をいくつか埋めました。 700点以上 他 700 点を埋めでDISCO presents ディ…

2021年の目標について

なんだか振り返りがアツすぎて(やったことを振り返る系)色変記事のようになってしまいました…… あれこれ取り組んでみて、結局ダメだったバージョンの記事がこちらです。思い返すと本当にいろいろ試して、躓いて、様々なことを成し遂げたもののレーティング…

年末年始の 9 日間でアルゴリズムイントロダクション第2巻の後ろ 3 分の 2 を乾燥したお話です。

要約 お盆休みに蟻本を完走(記事へのリンク)して、とてもためになったのを踏まえ、長期休暇にはなんらかテーマを決めて取り組んで見ることにいたしました。 この冬休みは『アルゴリズムイントロダクション』の 第 V 部(高度なデータ構造) 第 VI 部(グラ…