AtCoder,数学

問題方針問題の解釈問題文を理解すると、取り出した駒の順番は問題を解く上で関係ないことが分かります。まず初めに操作回数を表す関数を定義します。次にその関数の最小値を求めます。ある駒を別の位置に動かすための操作回数はマンハッタン距離であることが ...

AtCoder,数え上げ

問題方針与えられたグラフにおいて、\( 2 \) 回の移動で距離が \( 2540 \) となるパスの合計を求めたいので、ある頂点に接続している辺の距離の本数を数えます。

例えば、\(G \) を頂点 \( i \) から延び ...

AtCoder,動的計画法

問題方針どのような文字列を除くか

どのような部分文字列を取り除くかを考えます。

長さが \( 3 \) の文字列では、”AGC”, “ACG”, “GAC̶ ...

AtCoder,グラフ理論,ベルマン–フォード法

問題方針

グラフの問題では最短距離を答える問題が多いと思いますが、今回は違います。このような問題では、重みの符号を反転させ、最短経路問題に帰着させます。これは、\( y = f(x) \) の最大化問題を \( y = -f(x) \) ...

AtCoder,数学

問題方針\( a_i \leq b_i\) のとき\( b_i – a_i \) 回 \( a_i \) と \( b_i \) に操作を施します。\( b_i < a_i\) のとき\( a_i – b_i ...

AtCoder,数学

問題方針\( P \) は \( N \) 個の整数の積で表現したときに、その整数の最大公約数です。どのような整数の組み合わせと \(P\) が最大公約数を最大化することを考えると、\であることが分かります。このとき、\( a = a_i ...

AtCoder,グラフ理論,ワーシャル–フロイド法

問題方針全点間の最短距離を求めます。これはワーシャルフロイドなどで求めることができます。点 \( (i, j) \) 間の最短距離を \( d(i, j) \) とします。辺 \( a, b\) がこの最短経路に含まれる場合、辺 \( a, ...

AtCoder,Union Find,グラフ理論

問題方針与えられた情報から番号を当てられるか?

\( A_{X_i} + A_{Y_i} + Z_{i}\) が偶数という情報から番号を当てられることができるかを考えます。

例えば、\( A_1 + A_2 + 3 \mod ...

AtCoder,Union Find,グラフ理論,探索,深さ優先探索

問題方針各マスに番号を割り振る

\( H \) 行 \( W \) 列のマスを持つグリッドにおける \( i \) 行 \( j \) 列目のマスの番号を \( i \times W + j \) とします。このようにマスの番号を割り当 ...

AtCoder,グラフ理論,ダイクストラ法

問題方針最小共通祖先

根から 頂点 \( i \) までの距離を \(d_i \) とすると、頂点 \( u \) と 頂点 \( v \) の距離は、\( u \) と \( v \) の最小共通祖先までの距離 \( lca(u, v ...