競プロテク

O(ElogV)ダイクストラのテンプレ

O(ElogV)ダイクストラのテンプレ #include <queue> #include <vector> #include <functional> #include <utility> #include <algorithm> #include <iterator> using COST_T = uint32_t; constexpr uint32_t N_MAX = 変える; constexpr COST_T INF = 変える;//std::numeric_limits<double>::infinity() #if defined(_MSC_VER) &&</double></iterator></algorithm></utility></functional></vector></queue>…

N次元配列を同じ値で埋めるテンプレ2

N次元配列を同じ値で埋めるテンプレ キャストが要らないバージョン シンプルなのはこっち:N次元配列を同じ値で埋めるテンプレ - 永夜の記録 #include <type_traits> #include <vector> template<typename T, typename U> void fill_all_impl(T& arr, const U& v,...) { arr = v; } template<typename ARR, typename U> auto fill_all</typename></typename></vector></type_traits>…

C++14用mod_int

C++14用mod_intです。勝手にmodを取ります。 型名はmintです。 using mint = mint_base<1000000007>; の1000000007がとるmodになります。 +-*/やインクリメント,デクリメントが出来ます。 ~で逆元を取れますが、そのままでも割り算が使えます。(どちらもlog…

N次元配列を同じ値で埋めるテンプレ

N次元配列を同じ値で埋めるテンプレを置いておきます template<typename T> void fill_all(T& arr, const T& v) { arr = v; } template<typename ARR, typename U> void fill_all(ARR& arr, const U& v) { for (auto& i : arr) { fill_all(i, v); } } 使用例 int dp[1000][1000]; fill_all(dp,-1);/</typename></typename>…

セグ木テンプレ

C++11用オレオレセグ木テンプレです。 「変更するコードここから」の下を書き換えて使います。 segment_tree<int, 1000> seg; で要素int,大きさ1000のセグ木が出来ます。2の累乗には勝手に拡張するので1024でなくて良いです。 これをそのまま使うのではなく、これは一例</int,>…