template<typename L, typename T>
std::equality_comparable<typename L::tag_type>
and
requires(
const typename L::tag_type &
t1,
const typename L::tag_type &
t2,
const T & val,
size_t cnt)
{
typename L::tag_type;
{ L::tag_identity() } -> std::convertible_to<typename L::tag_type>;
{ L::apply(val,
t1, cnt) } -> std::convertible_to<T>;
{ L::compose(
t1,
t2) } -> std::convertible_to<typename L::tag_type>;
}
Concept for a lazy-tag policy used in deferred path updates.
and
Check uniqueness with explicit hash + equality functors.
Divide_Conquer_DP_Result< Cost > divide_and_conquer_partition_dp(const size_t groups, const size_t n, Transition_Cost_Fn transition_cost, const Cost inf=dp_optimization_detail::default_inf< Cost >())
Optimize partition DP using divide-and-conquer optimization.
std::decay_t< typename HeadC::Item_Type > T
Concept for a lazy-tag policy used in deferred path updates.
A Lazy Tag dictates how deferred (lazy) operations apply to nodes and how multiple deferred operations compose together. This is essential for efficiently updating an entire path in O(log n) time.
Definition at line 110 of file tpl_link_cut_tree.H.