![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
容斥
文章平均质量分 74
Jozky86
这个作者很懒,什么都没留下…
展开
-
P1450 [HAOI2008]硬币购物
P1450 [HAOI2008]硬币购物题意:共有 4 种硬币。面值分别为c1,c2,c3,c4c_1,c_2,c_3,c_4c1,c2,c3,c4。某人去商店买东西,去了 n 次,对于每次购买,他带了 did_idi枚 i 种硬币,想购买 s 的价值的东西。请问每次有多少种付款方法。题解:第一感觉是母函数,但写不出来,后来看题解时确实可以做,NTT+多项式求逆+母函数,麻烦而且跑的很慢,不过洛谷可以过,这里不做详细讲解,可以看看代码母函数做法的代码我们这里讲下完全背包+容斥的做法原创 2021-10-19 19:34:41 · 155 阅读 · 0 评论 -
GCD HDU - 1695
GCD HDU - 1695题意:给出a,b,c,d,k,求出a<=x<=b, c<=y<=d 且gcd(x,y) == k 的(x,y)的对数。求的是不同数量对的总数题解:和这个题一样P3455 [POI2007]ZAP-Queries,但是本题要求求不同数量对的总数,所以最后的结果要减去重复值如果是莫比乌斯+分块做法,对于区间[1,b],[1,d],b<d,重复部分是[1,b]部分,所以减去solve(b,b)/2如果是容斥做法,对于每个i∈[1,b],求[1原创 2021-09-23 11:30:23 · 97 阅读 · 0 评论 -
Visible Trees HDU - 2841(容斥)
Visible Trees HDU - 2841题意:大概就是有个m*n个点的矩形从(1,1)到(m,n),问从(0,0)出发直线看过去最多能看到几个点。题解:容斥做法参考这个题和AcWing 201. 可见的点一样的,但是这里介绍不同的做法,用容斥做不难知道我们要找的是区间[1,m]和[1,n]之间互质的对数(具体原因可以看上面的链接)那我们可以这样做:选取一个区间[1,n],枚举n里面的数i,然后对于每个数i我们看他在区间[1,m]中能找到多少互质的数对于枚举的每个i,我们可以用容斥原创 2021-09-22 21:40:53 · 69 阅读 · 0 评论 -
P1447 [NOI2010] 能量采集
P1447 [NOI2010] 能量采集题意:如果一棵植物与能量汇集机器(坐标为0,0)连接而成的线段上有 k 棵植物,则能量的损失为 2k + 1给你一个n*m的植物园,问能量损失是多少1<=n,m<=1e5题解:本题所求式子为:∑i=1n∑j=1ngcd(i,j)∗2−1\sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j)*2-1∑i=1n∑j=1ngcd(i,j)∗2−1式子如何求的?参考这个AcWing 201. 可见的点对于90%的数据,直接f原创 2021-09-08 13:02:46 · 103 阅读 · 0 评论 -
cf451E. Devu and Flowers(产生不同多重集数量)
cf451E. Devu and Flowers题意:有n个箱子,第i个箱子里有ai朵花,同一个箱子里花的颜色一样,不同箱子里的花颜色不一样。现在在这些箱子里选出m朵花组成一束,求一共有多少种方案。要求任意两束花都不一样题解:设第i个箱子里花的颜色是Bi,则本题就等价于从多集合S={A1 * B1,A2 * B2 …An * Bn}中选出M个元素能够产生的不同多重集的数量。根据多重集组合数的结论有:CN+M−1N−1−∑i=1NCN+M−Ai−1N−1+∑1<=i<j<=NCN+原创 2021-09-02 11:49:35 · 189 阅读 · 0 评论 -
P3301 [SDOI2013]方程
P3301 [SDOI2013]方程题意:题解:插板法介绍首先要先讲组合数学的一个方法:插板法问题引出:把10个球放进三个盒子,每个箱子至少一个有多少种分法?10个球就有9个空隙,我们可以考虑在这个9个空隙中放入两个隔板,这样10个球就被分成了3组,就相当于放入了三个箱子。答案就是C10−13−1C_{10-1}^{3-1}C10−13−1也就是n个球放入m个盒子,每个箱子至少一个有Cn−1m−1C_{n-1}^{m-1}Cn−1m−1种分法问题2:把10个球放进三个盒子有多少原创 2021-08-27 19:00:27 · 142 阅读 · 0 评论 -
P2567 [SCOI2010]幸运数字
P2567 [SCOI2010]幸运数字题意:我们规定只含6或8的数字为幸运号码,而幸运号码的倍数我们也认为是幸运号码,问[l,r]中有多少个幸运号码?题解:第一反应是数位dp,但其实不是,我们可以打表观察下,幸运数字其实很少,也就1000多个,所有我门全可以用容斥来去做。先去搞定所有范围内的合法数字,然后直接容斥对于有个幸运数字X,在[L,R]中X的倍数的个数,就是R/X-(L-1)/X,但是两个幸运数字有可能会存在交集,即重复计算,所有要用到容斥,选一个幸运数字-选两个幸运数字的lcm+选3原创 2021-08-08 16:21:33 · 325 阅读 · 0 评论