2017-08-01から1ヶ月間の記事一覧

tupleを展開して関数に渡す関数

tupleを展開して関数に渡す関数 boostを使えば出来るらしいけど、知らない。 出来栄えはかなり雑です。 template <class F, class... Ts, class... Us> typename std::enable_if< sizeof...(Us) == sizeof...(Ts), std::result_of_t<F(Ts...)>>::type apply_impl(F&& fun, std::tuple<Ts...>&, Us&... us) { retur</ts...></f(ts...)></class>…

プリム法の証明

かなり乱暴なことをしている気がします。厳密な証明は他をあたってください。 プリム法とは 最小全域木を構成するアルゴリズムの一つです。 以下の手順で行います。 ある頂点を選び、木Tに追加します 木Tから最も近い頂点を木Tに追加します Tが全域木になる…

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>…