北京day1

授课内容 : 组合计数 , 容斥 , 反演 , 多项式

未理解 : 多项式+部分反演+部分组合计数+部分容斥

练习 ABCJ

容斥计数的题的全部贡献在于一句话:拆贡献,并推式子

[ARC147D] Sets Scores

感官上是一个容斥,但发现它的那个对答案的贡献形式很难在容斥中放进去(如果只让计数答案不为零的集合簇有那些是能容斥完成的).

我们考虑这个相邻集合异或为一这个性质,就等同于每次只会消失或者出现一个元素,我们不妨让这些元素形成一个操作序列,对这个操作序列计数是简单的,就是一共操作 \(n-1\) 次,每次操作选择哪个元素都可以.

接下来会让我们的集合簇不同的原因,只剩下起始集合的不同,因为每一种起始集合的方案一定不同,我们接下来只考虑算该起始集合的贡献了.我们可以对于每一个元素单独考虑贡献,一个简单的观察是第一个元素在或不在初始集合中,造成的贡献加和为 \(n\),我们对于每个元素自由选在或不在,最后在乘在一起,乘法分配律一下,就得出了每一种起始集合对答案贡献和为 \(n^m\).

最后答案对两部分贡献乘到一起就可以了

[CERC2015] Frightful Formula

考虑行和列上的数对每个点做贡献是如何做的,答案是形如走一条路径"走"到该点,并且把路上所有的"贡献"都乘到一起,这是一个极其好算的组合数.

接下来考虑这个c,我们抽象成每个点都有一个c在向重点走,那样的话就是枚举c的起始点位置乘一圈贡献,现在复杂度不对,这是一个形如杨辉三角的的对角线一样的东西,不太好做.

我们可以拆掉一维,考虑这一维递推求解,考虑一下形式,又用杨辉三角拆下来两半,对两边式子都处理一下就构成了一个常数时间复杂度推的递推.

[ARC139D] Priority Queue 2

你要计总体贡献肯定直接倒闭,那么我们还是考虑拆贡献,怎么拆,把式子变一下.

变成计算每个方案中大于i的元素个数.面对这样的往集合里面插入元素,我们可以考虑这个元素是在你要计算的元素的前面或者后面出现.对于删除元素,也要考虑与它的相对位置.

这样的话删除元素就变成一个类似"水位上线"的机制,我们对于每一个元素枚举有多少元素是对它贡献加一,再算一下经过这么多加一后它的大小是多少,当成贡献乘进去就可以了.

单位根反演

\[[k|x]=\frac{1}{k}\sum^{k}_{i=0}\omega_x^i \]

感觉是一套很套路的东西,直接见到形如:下取整,取余,整除在一个和式中都可以试一试.

P5591 小猪佩奇学数学

提取关键字"下取整",除法的下取整可以拆成一个有关整除的和式,也就是拆成了一个类似单位根反演的东西.

之后对于和式的处理就比较套路了.值得一提的是,由于模数和 \(k\) 的特殊性,使得我们能够很方便的算出原根当作单位根.

posted @ 2025-12-13 21:11  2019yyy  阅读(28)  评论(4)    收藏  举报