Prefix XORs - AtCoder Regular Contest 137 D

AtCoder Regular Contest 137 D - Prefix XORs の解法です. コンテスト中に解いた方法 (実験結果から適当に求める) をベースに, 公式解説を参照して追加しました. リュカの定理の証明もWikipediaを見て書きました. 問題概要 長さ$N$の整数列 $A = (A_1, \ldots, A_N)$ と整数 $M$ が与えられる. 下の操作を$k$回行ったあとの $A_i$ の値を $A(i, k)$ と書くことにする. $k = 1, 2, \ldots, M$ について,$A(N, k)$ を求めよ. 操作: 各$i = 1, 2, \ldots, N$ について, $A_i$ を同時に $A_1 \oplus A_2 \oplus \cdots \oplus A_i$ で置き換える. 制約: $1 \leq N, M \leq 10^6$; $0 \leq A_i < 2^{30}$ 問題へのリンク 解法 実験 $A(i, k)$ は,$A_1, \ldots, A_i$ のいくつかのXORをとったものになる. そこで,$a(i, m, k) \in \{0, 1\}$ をとって, $A(i, k) = \bigoplus_{m=1}^{i} a(i,m,k) A_m$ と書く. 計算してみると分かるとおり,$a(i, m, k)$ は,$i - m$ と $k$ にしか 依存しない.そこで,$b(j, k) := a(j, 0, k)$ と書くことにする. $A(i, k) = \bigoplus_{m=1}^{i} b(i - m, k) A_m = \bigoplus \{ A_{i - j} \mid b(j, k) = 1; j = 0, \ldots, i-1 \}$ だから, 各 $k = 1, 2, \ldots, M$ について,$b(j, k) = 1$ となる $j$ を (高速に) 列挙できれば良い....

2022-03-20 yamate11

Baby Ehab Plays with Permutations - Codeforces Round 717 (Div.2) E

解説ACです.

2022-03-05 yamate11

Balls in Boxes - Atcoder Beginner Contest 231 G

解説ACです

2022-02-24 yamate11

Predilection - Atcoder Beginner Contest 230 F

解説ACです.

2022-02-20 yamate11

最大流・最小カット

最大流と最小カットについてのコンテスト用のまとめです

2022-02-20 yamate11

Cubic? - AtCoder Beginner Contest 238 G

ABC238G Cubic? の解法です.公式解説と同じです.

2022-02-13 yamate11

素因数分解に要する時間

素因数分解に要する時間を,事前計算と個別の計算に分けて計測しました

2022-02-06 yamate11

Divide A Sequence - AtCoder Beginner Contest 234 G

方針にも実装にも時間がかかりました.

2022-01-09 yamate11

ABC231 参加記

パナソニックプログラミングコンテスト2021に参加して,ABCDEF 6完347位でした.A - Water Pressure / B - Election / C - Counting 2 / D - Neighbors / E - Minimal payments / F - Jealous Two

2021-12-11 yamate11

AtCoder Beginner Contest 221 H - Count Multiset

解説ACです.

2021-11-24 yamate11

ABC228 参加記

ABC228 (トヨタシステムズプログラミングコンテスト2021 AtCoder Beginner Contest 228) に参加して ABCDE5完 265位でした.A - On and Off / B - Takahashi’s Secret / C - Final Day / D - Linear Probing / E - Integer Sequence Fair / F - Stamp Game

2021-11-21 yamate11

ABC226 参加記

ABC226 に参加して,ABCDE5完 922位でした.冷えました. A - Round decimals; B - Counting Arrays; C - Martial artist; D - Teleportation; E - Just one; F - Score of Permutations

2021-11-08 yamate11

String Cards - AtCoder Beginner Contest 225 F

解法です.公式解説ほぼそのままです.

2021-11-03 yamate11

ABC225 参加記

AtCoder Beginner Contest 225 (ABC225) に参加して,ABCD 4完の 1004 位でした.冷えました.A - Distinct Strings / B - Star or Not / C - Calendar Validator / D - Play Train / E - フ

2021-10-31 yamate11

Max Dot -- AtCoder Regular Contest 128 C

AtCoder Regular Contest 128 (ARC 128) C - Max Dot を解説ACしました. 公式解説より,多少行間が埋まっていると思います. 問題概要 整数 $N, M, S$ と整数列 $A = (A_1, .., A_N)$ が与えられる. 次の条件を満たす非負実数列 $(x_1, …, x_N)$ を作る: $0 \leq x_1 \leq x_2 \leq \cdots \leq x_N \leq M $ $x_1 + x_2 + \cdots + x_N = S$ $\sum_{i=1}^{N} A_i x_i$ の最大値を求めよ. 制約: $N \leq 5000$; $M,S,A_i \leq 10^6$; $S \leq NM$; 問題へのリンク 解法 $x_0 := 0$ として,$y_i := x_{i+1} - x_i$ ($i = 0, \ldots, N-1$) とすると, 次のように言い換えられる:...

2021-10-29 yamate11