yukicoder,文字列

問題方針

順列に関する問題です。ライブラリの prev_permutation() を利用しましょう。

コード#include <bits/stdc++.h>using namespace std;typedef lo ...

AtCoder,グラフ理論

問題方針

トポロジカルソートを利用するみたいです。

コード#include <bits/stdc++.h>using namespace std;typedef long long ll;int main() { in ...

AOJ,グラフ理論

問題方針

閉路のない有効グラフに対して頂点を一列に整列させることができます。

コード#include <bits/stdc++.h>using namespace std;typedef long long ll;in ...

AtCoder

問題方針

いわゆる最長共通部分列問題ですね。有名なアルゴリズムなので、ググりましょう。

コード#include <bits/stdc++.h>using namespace std;typedef long long ...

AOJ,数学

問題方針

上下左右対称であることを利用して解きます。\( 1 \leq x \leq \lceil \dfrac{N}{2} \rceil \) かつ \( 1 \leq y \leq \lceil \dfrac{N}{2} \rcei ...

AtCoder,累積和

問題方針

二次元の累積和を利用して解きます。二次元の累積和を利用することで長方形の領域で表される土地の地価の和を \( O(1) \) で計算することができます。よって、全てのマスを全探索して求めます。計算量は、\( O(H^2W^2) ...

AtCoder,二分探索,探索

問題方針

\( f(N) = AN + Bd(N)\) とすると、\( f(N) \) は増加関数なので、二分探索を行います。整数の桁数は、対数を使うよりも、数値を文字列に変換してから長さを得る方が良いと思います。

コード#inc ...

AtCoder,数学

問題方針

マス \( i, j \) から \( (i + 1, j + 2) \) に移動するような動き方の回数を \( a \), マス \( i, j \) から \( (i + 2, j + 1) \) に移動するような動き方の ...

AtCoder,探索,深さ優先探索

問題方針

順列を生成して距離を計算します。

コード#include <bits/stdc++.h>using namespace std;typedef long long ll;int a;bool flag;dou ...

AtCoder,グラフ理論,幅優先探索,探索

問題方針

座標間の距離が与えられるので、相対的な位置が分かります。したがって、ある座標の値を \( x_i = 0 \) として、\( M \) 個の情報に誤りがあるかどうかを調べます。

グラフ

各座標をグラフの頂点として、\ ...