beet's soil

競プロのことなど

セグメント木 高速化

std::functionは遅い!(素振り)

TL;DR;
template <typename T,typename E>
struct SegmentTree{
  using F = function<T(T,T)>;
  using G = function<T(T,E)>;
  using H = function<E(E,E)>;
  ~~~
};
  SegmentTree<int, int> seg(f,g,h,ti,ei);

template <typename T,typename E, typename F, typename G, typename H>
struct SegmentTree{
  // using F = function<T(T,T)>;
  // using G = function<T(T,E)>;
  // using H = function<E(E,E)>;
  ~~~
};
  SegmentTree<int, int, decltype(f), decltype(g), decltype(h)> seg(f,g,h,ti,ei);

こう

なんで?

なんでだろうね