競プロ

巡回セールスマン問題

既に道の候補があり、どの道を選んで最短で行くかではなく、 全ての<ノードを通るとき>という条件が追加されている。 よって、今どのノードを通って最後にどのノードにいるのかをメモするデータ構造を用いる。 dp[S][V] := bit列で表されたSが状態。Vが最…

tupleの使い方

tupleの作成方法 tuple<int,int,char>t=tie(a,b,c); tupleのアクセス方法 tie(a,b,c)=t: int& a=get<0>(t);</int,int,char>

LCS (最長共通部分文字列)

例題 ABC 141 E

LIS(最長増加部分文字列)

例題 ABC 38 E プレゼント

in_place_dp

前の値によって遷移元が異なるときセグ木を使って遷移元を高速に特定する。 例題 ABC 38 E プレゼント

next_permutationの使い方

do{ }while(next_permutaion(v.begin(),v.end()));

グラフ問題

ABC54 C ... 無向グラフをdfsでたどる。dfs(int now,int par)。next_permutationでもできる。

setの使い方

ABC176E ABC 140 E