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

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

N次元配列を同じ値で埋めるテンプレ キャストが要らないバージョン シンプルなのはこっち:N次元配列を同じ値で埋めるテンプレ - 永夜の記録 #include <type_traits> template<typename T, typename U> std::enable_if_t<std::rank<T>::value == 0> fill_all(T& arr, const U& v) { arr = v; } template<typename ARR, typename U> std::en</typename></std::rank<t></typename></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>…

JOI2012予選4「暑い日々」のオーバーキル考察

JOI 2012-2013 予選 問題4 これの解答に触れられているものの解説されていない想定オーバーキル考察です。

幅優先探索の一般的な罠

幅優先探索でTLEする一般的な罠の解説です。 こういうグリッドを幅優先する問題で起こりやすいですね。 C: 幅優先探索 - AtCoder Beginner Contest 007 | AtCoder 簡単のためこのような迷路を考えます。(#壁、.通行可) /abcdef 1###### 2####G# 3###..# 4##…

セグ木テンプレ

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

情報オリンピック布教用チラシ

学校でプログラミング講習なるものをやっていたので、先生に言って受講生に配らせてもらったチラシです。なので、プログラムが少し書けることを前提に累積和を入れてあります。 デザイン能力が無いのでみんなで改善してね(?) (配布の際は1,2ページを表面…

JOI布教用チラシ(図抜け)

【追記】ちゃんとしたやつをここにあげたのでそっちを見てね。 eiya5498513.hatenablog.jp 以下元記事...

ABC058/ARC071 D問題解説

D - 井井井 / ### 問題のURLはこちらです。 D: 井井井 / ### - AtCoder Regular Contest 071 | AtCoder

AGC011 A Airport Bus:実装の解説

A: Airport Bus - AtCoder Grand Contest 011 | AtCoder 解法:早く着いた人からバスに乗せていけば良いです。 以下、実装のテク。 バスには必ず一人以上乗っている。そのバスの出発時刻は保存しておく。 とします。 始めに、1番目の人をバスに乗せます(ま…

SRM 245 Div2 Med (Problem 600) Flush:日本語訳のようなもの

フラッシュ eiya君はフラッシュというカードゲームをしています。このゲームは、手札の中の同じマークのカードの枚数の最大値が得点になります。例えば、手札にスペード5枚、ハート2枚、他0枚の場合、5点です。eiya君はこのゲームを有利に進めたいです。 eiy…

topcoderのstd::bad_alloc

topcoderでstd::bad_allocが投げられて、自分のコードのどこからもstd::bad_allocが投げられていないとき、それはtopcoder側の採点の際のCLASSのnewで投げられているかもしれない。 classの中に大きな配列を置くのはやめましょう。グローバルにしましょう。 …

(書きかけ)TopCoderの設定記録(Windows)

主に自分用。(書きかけなのに公開するなという話もある) WindowsでTopCoder環境を整える。 面倒な人へ 完成品が僕のgithub上にあげてあります。 topcoderアカウントの取得とjavaのインストールをした後、!TopCoder起動から立ち上げて、 Options->Editor->C…

MujinProgrammingChallenge2017A問題:eiya解

MUJIN2017のA問題の僕の解法です。問題はこれ:A: Robot Racing - Mujin Programming Challenge 2017 | AtCoder 考察 1番目のやつよりも2番目のやつの方が先にゴールするには、1番目のやつを2番目のやつが跨ぐ必要がある。同様に、i

JOI2017本選落ち

成績は118点(1+2部分点)でした 少なくとも部分点取れる方針は出てたはずなのにほぼ取れてない。 緊張もしてなかったはずなので完全に実装力の無さが露見していて人権が無い。 — eiya@受験待機組 (@eiya5498513) 2017年2月12日 誤読 pic.twitter.com/cKwfgp…