hdu3929

二项式定理有两个性质,第一个是高中就接触过的,即奇数项(这里的奇数项与题目的奇数项定义不同)和偶数项系数之和相同

第二个也可以记住

阶乘分解质因数注意复习一下

这里拓展一个:$$\lfloor \frac{\lfloor\frac{n}{p}\rfloor}{q} \rfloor=\lfloor\frac{n}{pq}\rfloor$$

证明:设\(n=kp+r(0≤r<p)\),则\(LHS=\lfloor\frac{k}{q}\rfloor\)\(RHS=\lfloor\frac{k}{q}+\frac{r}{pq}\rfloor\);有\(\frac{r}{pq}<\frac{1}{q}\),我们将\(\frac{k}{q}\)看成\(k\)\(\frac{1}{q}\)相加,将数轴上的每两个整数之间划分成\(q\)个均匀段,所以\(k\)\(\frac{1}{q}\)相加会停留在某一个点,再加上一个小于\(\frac{1}{q}\)的数显然不会到达下一个位置。画图如下

当然这也告诉我们:中途一旦产生进位了,那么\(1\)的个数就要变化了

为什么?我们从竖式加法的角度考虑。从低位往高位进行加法,第一次进行的时候一定是两个\(1\)合成了一个\(0\),此时\(bitcnt(k)+bitcnt(n-k)\)\(bitcnt(n)\)要多\(2\),然后进了一位,如果下一位是\(0+0\),那么\(bitcnt(k)+bitcnt(n-k)\)\(bitcnt(n)\)\(1\);如果下一位是\(0+1\)或者\(1+0\),那么继续进位并且\(bitcnt(k)+bitcnt(n-k)\)\(bitcnt(n)\)要多\(3\);如果下一位是\(1+1\),那么\(bitcnt(k)+bitcnt(n-k)\)\(bitcnt(n)\)要多\(3\)。然后继续下去就会发现\(bitcnt(k)+bitcnt(n-k)\)一定比\(bitcnt(n)\)要多

为什么这里是覆盖奇数次?因为偶数不改变奇偶性

这个典型的容斥原理简单来说,就是先求每个\(a_i\)的子集,然后再求每两个\(a_i\)交集的子集,但是这里不是直接减掉,是要减掉两倍这么多,然后再求每三个\(a_i\)交集的子集,但是是加上四倍这么多,以此类推,下面以三个集合的文氏图来理解

先求每个\(a_i\)的子集

再减掉每两个\(a_i\)的交集的两倍

再加上三个\(a_i\)的交集的四倍

很显然就是被覆盖了奇数次的集合

代码可以看看这篇文章

posted @ 2024-02-18 10:55  最爱丁珰  阅读(3)  评论(0编辑  收藏  举报