ブログ名

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

【図解】$0 ≤ L < R < N$ なる整数の組 $(L, R)$ を一様ランダムに生成する方法

問題 問題1 $2 ≤ N$ なる整数 $N$ が与えられます。$0 ≤ L < R < N$ なる整数の組 $(L, R)$ なる $(L, R)$ を一様ランダムに生成する方法を示せ 問題2 $1 ≤ N$ なる整数 $N$ が与えられます。$0 ≤ L ≤ R < N$ なる整数の組 $(L, R)$ なる $(L, R)$ を一様…

Splay 木の計算量解析

Splay 木概論 Splay 木の基本操作 $\newcommand {\rank}{\mathtt{rank}}$Splay 木 $T$ は $0 ≤ Φ(T) ≤ n \log(n)$(ただし $n$ は節点数)なるポテンシャル $Φ(T)$ のもと、次の操作ができる二分木です。 クエリ 引数 事前条件 効果 ポテンシャル増分 最悪時…

【関数方程式】算術平均と可換な関数

問題 連続関数 $f: \mathbb{R} \to \mathbb{R}$ であって、次の条件を満たすものを特徴づけてください。 $$ f \left ( \frac { x + y } { 2 } \right ) = \frac { f(x) + f(y) } { 2 } \ (x, y \in \mathbb{R}) $$ 答え 答えは一次以下の多項式関数、つまり …

置換同士の転倒距離のご紹介と、転倒距離に関する三角形の周長の上界の評価

$\newcommand \dist { \mathrm{dist} }$$n$ を自然数として $[n] = \{ 0, \dots, n - 1 \}$ の置換全体の集合を $\mathcal{S} _ n$ と表します。置換 $σ ∈ \mathcal{S} _ n$ の転倒数を $ι(σ)$ で表します。 置換 $σ, τ \in \mathcal{S} _ n$ の間の距離 $\d…

区間ヒープのバグらせない実装だと思っているものを公開します

区間ヒープってバグりますよね。わかります。 概略は簡単なのですけれども長さを $4$ で割った余りで謎の場合分けが入ってつらい印象です。 この記事では私が簡単かつ高速であると思っている実装をご紹介していきます。 データ表現 この辺りは基本的にご存じ…

平面内にの pairwise disjoint な長方形3個の配置の分類(品目定理)とそのグラフ理論的証明

変な用語を普及させてしまってまた怒られそうなので、後世の方が「品目定理ってなんですか!?」になったときのために一応残しておきましょう。 主張 平面内にの pairwise disjoint な長方形3個の配置 が与えられているとします。このときこれは垂直な直線ま…

忘れがちな公式

負の二項定理みたいなやつ $$ \frac 1 { (1 - x ) ^ { 1 + n } } = \sum _ { i \ge 0 } \binom { n + i } i x ^ i $$ 重複組み合わせ $$ \left \lbrace x \in \mathbb{N}^k \ \middle \vert \ x _ 1 + \dots + x _ k = n \right \rbrace = \binom { n + k - …

[工事中]いわゆる期待値 DP の考え方

$$ \newcommand \id { \mathrm { id }} \newcommand \src { \mathrm { src }} \newcommand \tar { \mathrm { tar }} \newcommand \pid { p _ { \id } } $$ 毎回同じ形で出るのになんか混乱するので纏めました。 ※ 「補遺 ~ 執筆後に思ったのですが」にある…

最高に使いやすい Manacher のアルゴリズムの実装方法

参考文献:文字列の頭良い感じの線形アルゴリズムたち2 - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ 普通の Manacher のアルゴリズム 入力 $s$ の長さが $n$ のとき、普通の Mancher のアルゴリズムは、$A_i$ が $s$ の場所 $s_i$ を中心とし…

マージテクで、いわゆる auxiliary tree を構築する方法

参考問題: ABC340-G Leaf Color (鹿島建設プログラミングコンテスト2024) 参考文献: 指定された頂点たちの最小共通祖先関係を保って木を圧縮してできる補助的な木 | Kyopro Encyclopedia of Algorithms LCAをベースに構築するAuxiliary Treeのメモ - 日…

初めてのスタジオレコーディング体験記

まずはこれを再生しましょう! www.youtube.com 再生しましたね。ありがとうございます。では本日はここまでということで、ありがとうございました 以下あとがきになります。 あとがき 前提(私がライブ苦手なお話) 私はいわゆるちゃんとした歌枠をしたこと…

2023年振り返り&2024年の目標

例年通り、旧念の目標の達成状況を見て反省をし、また新年の過ごし方、目標を立てていきます。 とりあえず過去記事おいておきます。 2023: 2023年の目標と、旧年の振り返り - ブログ名 2021: 2021 年の目標について - ブログ名 2020: 2020 年の抱負 - ブログ…

2次元累積和の4つの形と8つの構築方法、4種類の長方形和クエリ、そして閃光のごとく現れた1人の天才こと私です。オススメ実装もあります!

どもども~~ こんにちは。ながたでございます。 先日の ABC 331 D - Tile Pattern を見て、執筆したくなりました。 この記事は、2次元累積和の亜種や実装方針などを網羅的に検討して回った結果、結局「コレ」でよいですよねという感じの記事になっておりま…

全ての AVL 木が赤黒木になるような彩色をもつこと

AVL 木を赤黒木になるように彩色する方法をご紹介します。

Hopcroft–Karp の Rust による短くて易しい実装

Hopcroft–Karp のアルゴリズムは、二部グラフ $G = (V (= L \cup R), E)$ の最大マッチングを $O (E \sqrt V)$ で計算します。(ただし、$E = \Omega(V)$ を仮定します。)詳しくは Wikipedia へどうぞです…! この記事の方法は行数でいうと全部で 40 行以下…