![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
容斥原理
文章平均质量分 50
WorldWide_D
这个作者很懒,什么都没留下…
展开
-
[codeforces449D/51nod1407]Jzzhu and Numbers
题目大意有n个整数,问从他们中取出若干个数字相与之后结果是0的有多少组。 答案比较大,输出对于 1,000,000,007 (1e9+7)取模后的结果。 n,a[i]≤10610^6分析直接做无从下手,但是可以考虑下容斥。 设f[i]表示有多少个a[x],满足a[x]&i==i。 设g[i]表示i在二进制下有多少个1。 那么答案Ans=∑(−1)g[i]∗2f[i]Ans=\sum (-1原创 2016-11-06 11:50:45 · 608 阅读 · 0 评论 -
[codeforces722E] Research Rover
题目大意有一个n*m的网格图,你要从(1,1)走到(n,m),每一步可以向右(或向下)走。你最开始有s点能量,然而有k个障碍点,每到达一个障碍点,你的能量会变成⌈x2⌉\lceil \frac{x}{2} \rceil。问走到(n,m)时你最终能量的期望。假设它是PQ\frac{P}{Q},输出P∗Q−1P*Q^{-1}模109+710^9+7的逆元。数据范围n,m≤100000 k≤2000原创 2016-10-27 17:22:47 · 811 阅读 · 0 评论 -
[51nod1375]再选数
题目大意有n个正整数,你可以从中选出k个数(k是给定的,如果k=-1则要选择至少一个),使它们的gcd=1。求方案数模998244353的值。n≤100000 每个数≤1000000分析数的范围不是很大,可以考虑从中入手。 设f(d)为选择的数gcd为d的答案,g(d)表示gcd是d的倍数的答案。显然有g(d)=∑f(kd)\sum f(kd) 看到这里想到了什么?!f(d)=∑i=1106原创 2016-12-06 22:27:58 · 612 阅读 · 0 评论 -
【WC2017模拟1.22】简单题
题目大意给定n,k,求把n!拆分成k个不同的正整数的乘积的方案数。(一种方案的排列仍是一种方案)。答案对109+710^9+7取模。n≤10000 k≤30时限为4s分析这是一道容斥好题。首先可以不管算重,最终答案除以k!k!即可。接下来考虑如何容斥。k个数互不相同,其实就相当于k(k−1)2\frac{k(k-1)}{2}个限制条件。如果一个方案不满足x个条件,那么它要乘上的容斥系数为(−1)原创 2017-01-23 17:21:56 · 4405 阅读 · 0 评论 -
[bzoj2655] calc
题目大意你可以构造一个长度为n的序列,满足:所有数都是[1,A]范围内的整数,且每个数都不相同。 给定n,A,mod,求所有合法的序列,n个数乘积的和模mod的值。(mod是个质数)n+1 < A < mod≤10910^9 n≤500分析dalao们都是拉格朗日插值法做的,我太弱了只会用容斥。。。n个数各不相同,就相当于n(n−1)2\frac{n(n-1)}{2}个形如x≠y的限制。如果当前一原创 2017-02-11 15:59:34 · 1512 阅读 · 2 评论 -
【GDOI2017第二轮模拟day1】最长路径
题目大意给定n,求对于i=1…n,从点1出发最长简单路径长度为i的竞赛图数量模一个10^9级别的模数(竞赛图:对于任意点i≠j,它们之间有且只有一条有向边)n≤2000分析做这题需要两个结论。 1. 一个强连通竞赛图必然存在一条哈密顿回路。证明:首先3个点的显然存在,假设k个点的存在一条哈密顿回路,那么现在加入第k+1个点,只要存在回路上相邻两个点p,q,满足p连向k+1,k+1连向q即可。如果没原创 2017-04-15 16:55:55 · 1211 阅读 · 0 评论 -
[codeforces 917D]Stranger Trees
题目大意给定一棵n个节点的树。对于k=0到n-1,输出有多少棵n个节点的带标号无根树恰好与给定的树有k条公共边。答案模109+710^9+7 n≤100分析我们从prufer序的角度考虑这道题。 选择了若干条原树的边后,我们得到一些联通块。把这些联通块都缩在一起,假设剩下m个点,接下来我们要去连接这些联通块,得到一棵树,然后考虑这棵树的prufer序是怎样的。 由于当前叶子的父亲所表示的联通块原创 2018-03-01 20:32:05 · 803 阅读 · 0 评论