金华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。

posted @ 2021-03-15 12:27  lcyfrog  阅读(68)  评论(0编辑  收藏  举报