金华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) 次分配个系数 (iin[0,k-1]) 乘到指数上 ,再求和之后就能得到单位根反演的式子。当有一个匹配边权和为(k)的倍数是行列式就不为0。