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

原文地址:https://www.cnblogs.com/lcyfrog/p/14536885.html