map
map< 番地の型, 記録する型 > a; a.clear() (初期化) アクセスの計算量は O(logN) 2分探索の必要がないため、lower_boundと使うと速い map&...
59 search resultsShowing 1~20 results
You need to log-in
map< 番地の型, 記録する型 > a; a.clear() (初期化) アクセスの計算量は O(logN) 2分探索の必要がないため、lower_boundと使うと速い map&...
lower_bound(a+l, a+r, x) - a (a は 小さい順にソートされている配列) l≤i≤r−1 の中で、x≤ai となるような最小の i(ポインタ) の値を返す 計算量は...
問題 確定済みの頂点の中から最短ルートを見つけるのを繰り返すプログラムである //プリム法 (計算量: O(|V|^2)) vector<vector<int>> G; ...
vector< int > a; a.push_back(x); (末尾に追加) a.pop_back(); (末尾を削除) a.size() a.clear() (全ての要素を削除...
最短経路問題 問題 : 動作確認済み (条件) 負の重みを持たない無向性グラフ 最短距離が更新されたときのみ、その頂点に隣接する辺の更新を行う vector<vector<ll>...
各ノードのセグ木を実際に使用するマス数だけに節約してしまい、 補助的なデータ構造として、マスの対応関係を保存しておけば、 実装の工夫なしの場合と同じことが出来ることになる。 マスの対応関係という...
template< typename Monoid > struct SegmentTree { using F = function< Monoid(Monoid, Mono...
BITはセグメント木の機能を限定したものであり、実装が簡単でメモリを節約できる //数列a(a[0],a[1],…,a[n-1])についての区間和と点更新を扱う //区間和,点更新,二分探索はO...
何度も部分加算をして、被らなかった場合、最小値の習得の時にまとめて更新できるので処理が速くなる 遅延なしの場合は部分加算ごとに全要素更新する必要があるが、遅延を使うとlognで一旦保留にできる ...
基本アルゴリズム 全探索 二分探索 最短経路問題 深さ優先探索 dp 最小全域木問題 高速な素数判定法 modint 累積和 基本データ構造 グラフ 木 Union-Find segment t...
巡回セールスマン問題 dp[bit][最後に訪れた頂点] = 最短経路 シフト制 dp[bit][日数] = パターン数 1次元 bit dp dp[bit] = 最小個数
int N, M, A[101010]; int cnt[20]; int dp[1 << 20]; int rui[20][101010]; int main() { cin &g...
ナップサック dp 部分和、区間分割、比較 ビットdp ナップザックdpで情報が足りない時に使用 ・訪れた頂点の情報をbitに持つ(巡回セールスマン) ・日ごとに参加する人の情報をbitに持つ(...
問題 全頂点を訪れてた後、最初に戻る場合と戻らない場合がある(yが必要) 有向性グラフであり、矢印がない頂点間はINFを与える ll N, E, y; //頂点、辺、最後に通る点 ll G[20...
問題 const int MOD = 10007; const int MAX_N = 1010; int N; char S[MAX_N]; int dp[MAX_N][8]; //文字→数字...
repを複数使うとき同じ文字を使わない 同じ文字を何度も定義するとエラーが起きやすい(queueなど) 通常は番号を入力から受け取るとき-1する INFの値は十分大きい値にしておく(int IN...
問題 // 入力 string S1, T1; // DP テーブル int dp[1010][1010]; //[S : i番目][T : j番目] int main() { cin >...
問題 dpイメージ dp[i][w] : i 番目までの品物の中から (選ぶ、選ばない 選択) 重さが w を超えないように選んだときの、 価値の総和の最大値 // 入力 ll n, W; //...
最短経路問題 問題 : 動作確認済み queue と vector を使う int H, W; // 迷路の大きさ char c[1009][1009]; // x座標、y座標 int dist...
幅優先探索 (重みなし) 計算量: O(|E| + |V|) ダイクストラ法 (正の重みのみ) 計算量: O(|E|log|V|) ベルマンフォード法 (負の重みも含む) 計算量: O(|E|×...
59 search resultsShowing 1~20 results
Qiita is a knowledge sharing service for engineers.