テクニック解説
ICPC海外リージョナルとかyukicoderとかatcoderで見たことある気がする(問題はatcoderのNon-triangular Triplets位しか思い出せない) 1,2,3,4,5 + 5,3,1,4,2 = 6,5,4,8,7 1,2,3,4,5,6,7 + 7,5,3,1,6,4,2 = 8,7,6,5,4,11,10,9 一般化は 1,2,3,...,2K+1 2K+1,2…
これを #define extrep(v,...) for(auto v:make_mat_impl({__VA_ARGS__})) vector<vector<long long>> make_mat_impl(vector<long long> v){ if(v.empty())return vector<vector<long long>>(1,vector<long long>()); long long n=v.back(); v.pop_back(); vector<vector<long long>> ret; vector<vector<long long>> tmp=make…</vector<long></vector<long></long></vector<long></long></vector<long>
macro_rules! make_vec{ ( $val:expr , $head:expr)=>{ vec![$val;$head] }; ( $val:expr , $head:expr , $($tail:expr),+ )=>{ vec![make_vec!($val,$($tail),+);$head] }; } で作れます let mut dp=make_vec!(0,h,w); のように使います C++よりは元々作り…
試してないのでわからないのですがtie(t->r,t->r->l,t)=make_tuple(t->r->l,t,t->r);で木の回転が出来そう?— 5%の確率で橙パフォをとるhotman (@hotmanww) October 30, 2019 昔考えたやつをブログ化 //npはnodeのポインタ、b=1で右回転 ch[1]は右の子、ch[…
ark4rk.hatenablog.comこれを事前に読んで欲しいです。 分割統治法の方針でセグ木に乗せられます これにより、 点更新 [l,r)間の連続部分列における総和の最大値を求める が出来ます からなるベクトルを考えると、これがモノイドになっています。試しにベク…
拡大係数行列を考える。 この時、の時のみ解が存在する事が知られている。 転置行列についてもrankは同じであるため、で計算が出来る。 からでが求められる事から転置行列においては2倍の定数倍高速化も可能である。