金华3.14
金华3.14
周日,打十连测,下午颓,晚上补题。
ZROI1803 province
斜率优化,发现下标不单调,于是cdq分治,还是很裸的。
segment tree beats!学习笔记
本质思想是操作几次后区间的数会变得相同,所以可以直接dfs儿子来修改。
ZROI1805 max
利用上面的思想,维护一个sametag表示这些位上的数相等,就可以一起操作一些东西了。其实用这东西就相当于每次在每位覆盖一个区间,复杂度是log,一共有log位,所以一共两个log。
ZROI1804 matching
行列式判断完美匹配
行列式的定义:
\[|A|=\sum_{p \in P_{n}} \operatorname{sgn}(p) \prod_{i=1}^{n} A_{i, p_{i}}
\]
考虑边的矩阵, 没有边的话矩阵的值为0。如果不存在完美匹配,总有一个边为0,则行列式始终为0,由于还有系数,我们就可以随机赋权来判断完美匹配。
这题可以考虑单位根反演,
\[[k|n]=\frac{1}{k}\sum_{i=0}^{k-1} (\omega_{k}^n)^i
\]
当 \(n\) 是 \(k\) 的倍数的时候\(\omega_{k}^n=1\),否则等比数列求和出来是0。
这题要求边权和为 \(k\) 的倍数,那么我们把边权放到指数上乘起来求和,再在外面求\(k\) 次分配个系数 \(i\in[0,k-1]\) 乘到指数上 ,再求和之后就能得到单位根反演的式子。当有一个匹配边权和为\(k\)的倍数是行列式就不为0。