解法
簡単なバージョンで問題を考える. \(i \in N\) 毎に独立に解けるので,\(N=1\) として考える. \(y := A_{0}\) とおく. \(j \in [0,M]\) に対して,
とする.
遷移を求める. \(x_{j+1}\) は, 確率\(p := \frac{1}{r-l}\) で \(x_{j}\) になり, 確率\*1;
簡単なバージョンで問題を考える. \(i \in N\) 毎に独立に解けるので,\(N=1\) として考える. \(y := A_{0}\) とおく. \(j \in [0,M]\) に対して,
とする.
遷移を求める. \(x_{j+1}\) は, 確率\(p := \frac{1}{r-l}\) で \(x_{j}\) になり, 確率\*1;
*1:q := 1-p\) で \(y_{j}\) のままである. よって遷移は $$ y_{j+1} = q y_{j} + px_{j} $$ となる.
\(a,b \in \mathbb{Z}\) に対して, 写像 \(f: \mathbb{Z} \rightarrow \mathbb{Z},\ x \mapsto ax + b\) の全体 \(F\) を考える. 作用素 \(F\) とモノイド\((\mathbb{Z},\ +)\) に対して 遅延伝搬segtree を使えばよい.
モノイドの演算は使わないので,別の演算でも代用できるかも.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
ナップザック問題の DPと同じで,部分和問題の DP. 状態数が少ない様に DP の定義域と値域を選ぶと, 空間計算量と時間計算量が小さくできる.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
木の直径を求めるアルゴリズム.
\(v_{1}, v_{2}\) が直径の一つ.
始点を固定したとき,最も遠い点は DFSで求まる. つまり DFSを 2回実行すれば,木の直径が求まる.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
2人のプレイヤーの座標の組を頂点にもつグラフ上でBFS.
移動先の位置は,今のマスにも依存することに注意. 壁に向かって移動しようとしたときは,今の位置にとどまるが, もう一方のプレイヤーが移動できる場合がある.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
1本封鎖されれば,通るべき path が一意に定まる. 相異なる vertices \(a,b \in N\) を固定する.\(a < b\) と仮定してよい. Edge \(e \not\in [a,b)\) を切断したとき,path は \(a \ra a+1 \ra \cdots \ra b\) となり, \(e \in [a,b)\) を切断したとき,path は \(a \ra a-1 \ra \cdots \ra b\) となる.
区間に対する和を保留して,最後にまとめるので,imos 法で解ける.
元のグラフの edge を vertex に, 元のグラフの vertex を 区間の境目と考える.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
回転と裏返しも良いと書いてあるが,裏返しは意味がない. 回転が高々 \(2^{N}\) 通り, 埋める順番が高々 \(N!\) 通り. \(N \leq 7\) なので,遷移に時間が多少掛かっても間に合う.
判定問題を試すときは,取りこぼしさえ無ければ十分. 数え上げ問題の場合は,取りこぼしがないだけでなく,重複も取り除かないといけない. 今回は判定問題なので,重複しても良い. 左上のマスから全探索して,長方形の左上を置くことにする. これを,並べ替え \(N!\) と回転 \(2^{N}\) に対して行う.
DFSで実装した. next_permutation と bitmask でも可能.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
とする.答えは \(|X|\).
基本は \(X - \{S\} \) を数えればよく, \(S \in X\) のときだけ +1 すればよい.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"