
容斥原理
文章平均质量分 59
WerKeyTom_FTD
这个作者很懒,什么都没留下…
展开
-
[UER#6 C]逃跑
要求的是方差,实际就是求所有情况下经过不同位置的个数和以及经过不同位置的平方和,设为ddd和d2d2d2。 一共有四种方向向量,任意走法对应一种向量序列。 先预处理W(i,x,y)W(i,x,y)W(i,x,y)表示长度为iii,和为(x,y)(x,y)(x,y)的向量序列有多少种。 如何求ddd,当然是很简单的。 每个坐标显然可以独立统计贡献,我们希望在每个坐标第一次被走到时统计到它。 ...原创 2018-06-25 17:23:46 · 787 阅读 · 0 评论 -
小R打怪兽
题目描述推式子首先我们设Bi=max(A−Di,1)B_i=max(A-D_i,1) ∑mi=1∑Xj≤Hj≤Yj[∑nj=1[⌈HjBj⌉≤i]≥k]\sum_{i=1}^m\sum_{X_j\leq H_j \leq Y_j}[\sum_{j=1}^n[\lceil\frac{H_j}{B_j}\rceil\leq i]\geq k] 这让我们很不好搞,但是我们可以容斥,枚举若干个,然后要求原创 2017-07-10 10:32:17 · 423 阅读 · 0 评论 -
容斥的原理及广义应用
容斥原理想起容斥原理,大家都不陌生。 相信很多地方都会举这样类似一个最简单的例子让大家理解容斥: 现在赛场上有n个人,都参加过WC、CTSC和APIO。 拿过至少一个比赛的金牌的有多少人? 我们可以简单计算拿过WC金牌的人数+拿过CTSC的金牌的人数+拿过APIO的金牌的人数。 但是这样会记重,比如jasonvictoryan,他既拿过WC的金牌又拿过APIO的金牌,又比如czllgzmz原创 2017-07-07 16:30:35 · 8750 阅读 · 3 评论 -
[51nod1355]斐波那契的最小公倍数
题目大意求n个斐波那契数的最小公倍数。做法首先斐波那契数列有性质(fn,fm)=f(n,m)(f_n,f_m)=f_{(n,m)} 具体证明不证了,烂大街的性质了。 构造数列g满足 fn=Πd|ngdf_n=\Pi_{d|n}g_d 可以用莫比乌斯反演求出g gn=Πd|nfμ(nd)dg_n=\Pi_{d|n}f_d^{\mu(\frac{n}{d})} 接下来我们知道求lcm可以转化原创 2017-06-25 22:33:29 · 1104 阅读 · 0 评论 -
[JZOJ5130][51nod1446][SDOI省队集训2017]苹果树
题目描述有N个点(N<=40)标记为0,1,2,…N-1,每个点i有个价值val[i],如果val[i]=-1那么这个点被定义为bad,否则如果val[i] >=0那么这个点为定义为good。现在给这N个点间连上N-1条边,使它们构成一个生成树,定义树中的点为great点当且仅当这个点本身是good点且与其相邻的点中至少有另一个good点。树的价值等于树中所有great点的价值和。定义限制价值树是指原创 2017-06-02 21:16:24 · 913 阅读 · 0 评论 -
[bzoj4671]异或图
题目描述定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中, 否则这条边不在 G 中. 现在给定 s 个结点数相同的图 G1…s, 设 S = {G1, G2, … , Gs}, 请问 S 有多少个子集的异 或为一个连通图?斯特林反演用贝尔数的时间来枚举子集划分。 规定被划原创 2017-04-22 15:31:42 · 1794 阅读 · 2 评论 -
[bzoj2169]连边
题目描述有N个点(编号1到N)组成的无向图,已经为你连了M条边。请你再连K条边,使得所有的点的度数都是偶数。求有多少种连的方法。要求你连的K条边中不能有重边,但和已经连好的边可以重。不允许自环的存在。求连边的方法数。我们只关心它模10007的余数。DP设f[i,j]表示无顺序的连了i条边,有j个度数为奇数的点。 f[i,j]=1i(f[i−1,j−2]∗C2n−j+2+f[i−1,j]∗j∗(n−原创 2017-04-20 17:25:20 · 1082 阅读 · 0 评论 -
[bzoj4826][HNOI2017]影魔
题目描述影魔,奈文摩尔,据说有着一个诗人的灵魂。事实上,他吞噬的诗人灵魂早已成千上万。千百年来,他收集了各式各样 的灵魂,包括诗人、牧师、帝王、乞丐、奴隶、罪人,当然,还有英雄。每一个灵魂,都有着自己的战斗力,而影魔,靠 这些战斗力提升自己的攻击。奈文摩尔有 n 个灵魂,他们在影魔宽广的体内可以排成一排,从左至右标号 1 到 n。 第 i个灵魂的战斗力为 k[i],灵魂们以点对的形式为影魔提供原创 2017-04-19 16:22:09 · 1401 阅读 · 0 评论 -
[LibreOJ β Round #4]求和
题目大意∑ni=1∑mj=1μ2((i,j))\sum_{i=1}^n\sum_{j=1}^m\mu^2((i,j))反演∑ni=1μ(i)∗∑n/id=1μ2(d)∗(n/id)∗(m/id)\sum_{i=1}^n\mu(i)*\sum_{d=1}^{n/i}\mu^2(d)*(n/id)*(m/id) 可以发现后面在容斥,结果是(n/i/i)∗(m/i/i)(n/i/i)*(m/i/i)原创 2017-09-04 22:40:58 · 724 阅读 · 0 评论 -
[agc005d]~K Perm Counting
前言简单的容斥DP题。题目大意有多少排列对于每个位置i都满足|ai−i|!=k|a_i-i|!=k容斥当然是经典容斥问题了。 假如钦定某些位置不满足条件,其可以往前或后连。 发现只有模k相同的互相有影响。 不妨先做一个状压dp,f[i,j,s]表示有i个点,有j个点有出度(也就是j个不满足条件),其中i有没有入度,i+1有没有入度。 转移简单。 初始状态是f[1],注意第1个不能往前连。原创 2017-10-31 10:38:28 · 1215 阅读 · 1 评论 -
[agc005f]Many Easy Problems
前言居然有FFT题。题目大意给你一棵树,对于每个k求出在树上任选k个点形成虚树大小的和。做法假设这是有根树。 考虑一个点i对于一个k的贡献,考虑容斥。 Ckn−∑j是i儿子Cksize[j]−Ckn−size[i]C_n^k-\sum_{j是i儿子}C_{size[j]}^k-C_{n-size[i]}^k 假设a[i]表示最终答案中CkiC_i^k的系数,对于任何k来说a都是不变的。 然后原创 2017-10-31 10:52:10 · 800 阅读 · 0 评论 -
[TCO2014]FrozenStandings
题目大意有n个人,每个人有一个数字xix_i。 现在你可以把某些人的xix_i加一。 问一共能造成多少本质不同的排名? 两个人中数字大的排名靠前,数字一样编号小的靠前。做法双关键字让我们非常难受。 考虑设一个大数w,令ri=−xi∗w+ir_i=-x_i*w+i,然后令li=ri−wl_i=r_i-w。 那么现在就是一个人可以选择lil_i或rir_i,问排名数。 立刻变成了单关键字。原创 2018-03-24 11:49:27 · 767 阅读 · 0 评论 -
[UOJ#214]合唱队形
题目大意有n个人每个人有一个字符集初始为空。 有tot个事件,每个事件形如在第ai个人的字符集里放了bi这个小写字母。 每个时刻等概率发生一个事件。 有一个长度为m的字符串s。某个时刻如果存在编号连续的m个人,按从小到大的顺序发现对于第i个人字符集里都有si,那么则胜利。 问胜利的期望时间,要求判断无解,答案在模意义下进行。容斥设f(i)f(i)表示时刻i还没有胜利的概率。原创 2017-11-24 12:11:59 · 1072 阅读 · 0 评论 -
[2017集训队作业自选题#149]小c的岛屿
前言感觉这题挺棒棒的。题目描述小c有n个岛屿。她为了管理岛上的人,决定让这些岛屿连通。 每个岛屿i有一个概率值pi,和一个友好列表Ai。 小c首先来到了1号岛屿,她会依次执行下面操作: 1、设现在在岛屿x,有px的概率产生一条无向边连接两个随机岛屿,这两个岛屿不会相同,也不会已经有边相连。(即在尚不存在的无向边中随机一条加入图中,不会加自环) 2、如果此时所有岛屿连通,她就会心满意足地离开。原创 2018-01-01 20:22:02 · 1543 阅读 · 2 评论 -
大佬的难题
题目大意给n个三维坐标点,满足每维坐标都是1-n的排列,求三维偏序。做法注意到任意两个位置,都有一个位置有至少两维比另一个位置的对应两维大,于是可以容斥,那么只需要做二维偏序。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;typedef long long l原创 2017-12-12 21:14:20 · 616 阅读 · 0 评论 -
Psy
题目大意一个字符集为0~9的长度为n的数字串,f(n)为其本身的字典序在所有后缀中是严格最小的字符串的数量。 求∑ni=1f(i)∗i2\sum_{i=1}^nf(i)*i^2结论我们发现一个有周期的串的本身不可能是严格最小后缀。 对于没有周期的串,当做循环串来看,可以转出n个不同的字符串,一定只有一个能被算入f(n)。 可以知道f(n)是没有周期的串个数除以n。 f(n)=∑d|nμ(d)原创 2017-11-23 15:32:20 · 784 阅读 · 0 评论 -
[arc082e]ConvexScore
做法可以发现题意转换后就是选出点集能围成凸包的方案数。 不如考虑不能围成的情况一定是选的点全部共线。 瞎做就好了。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;typedef long long ll;typedef double db;const i原创 2017-11-03 11:07:05 · 584 阅读 · 0 评论 -
[arc058d]Iroha and a Grid
题目大意一个矩形,从左上角开始,只能往下或往右走,不经过左下角一个给定大小的矩形,到达右下角的方案数。做法显然可以容斥,统计非法方案,那么枚举左下角矩形最上面一行第一个到达的格子即可。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)原创 2017-11-03 08:41:28 · 932 阅读 · 0 评论 -
最长路径
题目描述在Byteland 一共有n 个城市,编号依次为1 到n,它们之间计划修建n(n-1)/2条单向道路,对于任意两个不同的点i 和j,在它们之间有且仅有一条单向道路,方向要么是i 到j,要么是j 到i。换句话说,这是一个n 个点的竞赛图。 Byteasar 居住在1 号城市,他希望从1 号城市出发,沿着单向道路不重复地访问一些城市,使得访问的城市数尽可能多。 请写一个程序,帮助Byteas原创 2017-04-18 11:11:02 · 1627 阅读 · 0 评论 -
[bzoj4596][SHOI2016]黑暗前的幻想乡
题目描述四年一度的幻想乡大选开始了,最近幻想乡最大的问题是很多来历不明的妖 怪涌入了幻想乡,扰乱了幻想乡昔日的秩序。但是幻想乡的建制派妖怪(人类) 博丽灵梦和八云紫等人整日高谈所有妖怪平等,幻想乡多元化等等,对于幻想乡 目前面临的种种大问题却给不出合适的解决方案。 风间幽香是幻想乡里少有的意识到了问题的严重性的大妖怪。她这次勇敢的 站了出来参加幻想乡大选。提出包括在幻想乡边境建墙(并让人类原创 2017-02-21 22:28:18 · 850 阅读 · 0 评论 -
[bzoj4710][JSOI2011]分特产
题目描述JYY 带队参加了若干场ACM/ICPC 比赛,带回了许多土特产,要分给实验室的同学们。 JYY 想知道,把这些特产分给N 个同学,一共有多少种不同的分法?当然,JYY 不希望任 何一个同学因为没有拿到特产而感到失落,所以每个同学都必须至少分得一个特产。 例如,JYY 带来了2 袋麻花和1 袋包子,分给A 和B 两位同学,那么共有4 种不同的 分配方法: A:麻花,B:麻花、包子原创 2017-01-16 09:25:21 · 874 阅读 · 0 评论 -
求和
题目描述推一下∑i=1n∑j=1mμ(i)∗μ(j)∗∑d|ijd\sum_{i=1}^n\sum_{j=1}^m\mu(i)*\mu(j)*\sum_{d|ij}d 对于每一个d|ij,一定可以把d拆成d=ab满足a|i且b|j,我们可以考虑枚举a和b。因为一个d有多种拆法,为了避免重复,需保证(a,j/b)=1,因为如果(a,j/b)=k>1的话,a/k和bk也是一种合法答案。 还记得莫比乌原创 2016-07-07 20:01:00 · 589 阅读 · 0 评论 -
[bzoj4635]数论小测验
题目大意有两个问题: 1、求有多少个长度为n的序列,每个数都在[1,m],满足gcd(a1……an)=k 2、求有多少个长度为n的序列,每个数都在[1,m],满足k|lcm(a1……an) 现在给定l和r,求k取[l,r]时回答其中一种问题的答案和。第一题我们设f[i]表示k=i时的答案。 显然f[i]=⌊mi⌋n−∑⌊mi⌋j=2f[i∗j]f[i]=\lfloor\frac{m}{i}\原创 2016-07-10 20:55:26 · 893 阅读 · 0 评论 -
[NOI2016模拟5.14]BZOJ
前言加这个前缀也是为了防误会。。题目大意一个n个结点组成的无向完全图,每条边权值在[1,p]且为整数。问有多少种这种图1到n的最短路为m。搜深搜出每种距离标号的点有多少个。 于是就分层了。 然后根据最短路原则,距离标号为i的点一定存在一个距离标号为j的点它们的连边的权值为i-j。 这个不好算,但我们可以算出从所有距离标号小于它的点走过来的距离大于等于j的答案减去大于j就变成了至少1个等于。原创 2016-05-18 18:40:58 · 981 阅读 · 0 评论 -
[bzoj4517][SDOI2016]排列计数
题目大意a是关于n的排列。 问有多少符合条件的排列——恰有m个位置满足a[i]=i错排设dp[i]表示i个元素的错排方案数。 什么意思呢?就是关于i的排列其中不存在任意的a[j]=j。 答案显然就是Cmn∗dp[n−m]C_n^m*dp[n-m] 组合数快速算可以预处理阶乘以及阶乘的逆元。 怎么预处理出dp呢? 我们可以使用容斥原理: 例如dp[n],其实就是要满足n个条件——第i个条原创 2016-04-21 20:45:51 · 1077 阅读 · 0 评论 -
[bzoj2440][zsoi2011]完全平方数
题目大意找到从小到大第k个不含有平方因子的数。二分答案+容斥原理首先我们可以很容易想到二分答案,然后转化为一个判定性问题。 那么现在要解决的是如何求1~n内有多少不含平方因子的数。 可以想到容斥原理。 即ans=∑(−1)i∗n以内含有至少i个平方因子的数ans=\sum(-1)^i*n以内含有至少i个平方因子的数莫比乌斯函数观察上面的式子,转化一下 ans=∑√ni=1n/(i∗i)∗(−原创 2016-04-13 21:26:59 · 768 阅读 · 0 评论 -
[bzoj3129][SDOI2013]方程
题目大意现有N个未知数X1..N,已知这N个未知数之和为M。 现有n1个不等式,第i个不等式为Xi<=Fi。 还有n2个不等式,第i个不等式为Xi+n1>=Gi。 求方程的正整数解个数,结果模P。 若P=p1c1∗p2c2∗...∗ptopctopP=p1^{c1}*p2^{c2}*...*ptop^{ctop} 则最大的pici<=105pi^{ci}<=10^5 N,M<=10^9,原创 2015-12-02 20:06:20 · 1561 阅读 · 0 评论 -
蜡笔
题目大意有n(n<=100000)个三元组。现在你需要选k个三元组,使者k个三元组两两差异(差异定义为三元组每一项差值的最大值)最小。 三元组每一项都不超过255。二分实际上就是挑选k个三元组使得任意两个三元组中任意项对应元素差值的最大值最小。 最大值最小自然就是二分啦。 不过二分对应的是判定性问题,怎么办呢? 我们可以统计最多能挑选多少个,那么如果这个数量大于等于k,挑选k个自然没有问题。原创 2015-08-29 13:37:19 · 703 阅读 · 0 评论 -
[SDOI2008]沙拉公主的困惑
题目大意求n!中与m!互质的数的个数。显然的结论就是求n!∗Πk|m!k−1kn!*\Pi_{k|m!} \frac{k-1}{k} 至于为什么就不说了,太过显然。 然后预处理阶乘,后面那个与m有关可以预处理,为了不超时还要线性求逆。#include<cstdio> #include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using na原创 2016-08-16 15:15:12 · 593 阅读 · 0 评论 -
[51nod 1801]wangyuzree的树
题目大意有n个节点的树,m个限制限制一个点的度数不能为多少。容斥显然可以容斥,然后就知道了一些限制。 根据prufer序的唯一对应性,假如有x个限制(注意如果有限制相同节点的不能算,所以现在讨论的这些限制都限制了不同节点的度数),第i个限制限制一个节点度数必须为d[i]。 答案为Cd[1]−1n−2∗Cd[2]−1n−2−d[1]+1]∗……∗(n−x)n−2−∑xi=1d[i]−1C_{n-2原创 2016-08-16 16:11:11 · 628 阅读 · 0 评论 -
[bzoj4487][JSOI2015]染色问题
题目大意有一个n*m的网格,你有p种颜色,每个格子可以不涂色或涂p种颜色中的一种。满足以下条件 1、每行都要有格子被涂 2、每列都要有格子被涂 3、每种颜色都得用容斥原理枚举i、j、k表示 至多i行被涂色 至多j列被涂色 至多k种颜色被使用 那么答案是 ∑ni=0∑mj=0∑pk=0Cin∗Cjm∗Ckp∗(−1)n+m+p−i−j−k∗(k+1)ij\sum_{i=0}^n\sum原创 2016-09-13 17:18:07 · 1933 阅读 · 0 评论 -
[hackerrank]Unique Divide And Conquer
题目大意有多少种不同的n个节点的带编号无根树点分治过程唯一?DP设f[i]表示i个节点时的答案。 g[i]表示i个节点组成的森林,森林中每一个棵树都是点分治过程唯一的,而且是有根树,有多少种。 对于f的计算,首先重心有i种编号,然后思考除去重心后的森林部分,可以用g[i-1]表示除了该层外点分治过程唯一的方案,然后减去非法的情况。 非法情况包括:删去点不是重心,点分治过程不唯一。 两种情况可原创 2016-11-15 16:01:06 · 588 阅读 · 0 评论 -
SJR的直线
题目大意给定n条直线,保证任意三条不共点,求形成了多少个三角形。组合数算算至多能形成C3nC_n^3个三角形。 我们看看什么时候会不合法。 1、两条平行第三条不与它们平行 2、三条都平行 一组平行线假如有t条,那么非法贡献是C2t∗(n−t)+C3tC_t^2*(n-t)+C_t^3 用map统计每种斜率的直线个数然后按上面算即可。#include<cstdio>#include<alg原创 2016-11-15 15:21:38 · 665 阅读 · 0 评论 -
抗拒黄泉
题目大意一个n*m的网格上,有一些格子可操作。 每一轮等概率选择一个可操作的格子操作,若选择了(i,j),那么第i行与第j行会被标记为操作过。 求期望轮数使得所有行和所有列均操作过。 n,m<=20,n*m<=200容斥我们用P(i)表示已经过了i轮,还没有使得所有行列均操作过的概率。 那么答案即为 ∑∞i=0(P(i)−P(i+1))∗(i+1)\sum_{i=0}^\infty(P(i原创 2016-11-02 20:46:29 · 769 阅读 · 0 评论 -
I Liked Matrix!
题目大意有一个矩形,每个位置权值为0或1。每个位置变成0或1的概率比为x:y。 设Bi表示一行1的个数。 求E(min{Bi})容斥设f[i]表示一行有>=i个1的概率。 设zero和one表示一个位置是0或1的概率。 显然f[i]=f[i−1]−Ci−1m∗onei−1∗zerom−i+1f[i]=f[i-1]-C_m^{i-1}*one^{i-1}*zero^{m-i+1} 我们枚举m原创 2016-11-01 14:33:43 · 755 阅读 · 0 评论 -
running
题目描述小胡同学是个热爱运动的好孩子。 每天晚上,小胡都会去操场上跑步,学校的操场可以看成一个由n 个格子排成的一个环形,格子按照顺时针顺序从0 到n �� 1 标号。 小胡观察到有m 个同学在跑步,最开始每个同学都在起点(即0 号格子),每个同学都有个步长ai,每跑一步,每个同学都会往顺时针方向前进ai 个格子。由于跑道是环形的,如果 一个同学站在n �� 1 这个格原创 2016-10-06 07:53:34 · 800 阅读 · 0 评论 -
[51nod 1667]概率好题
题目描述甲乙进行比赛。 他们各有k1,k2个集合[Li,Ri] 每次随机从他们拥有的每个集合中都取出一个数 S1=sigma甲取出的数,S2同理 若S1>S2甲胜 若S1=S2平局 否则乙胜 分别求出甲胜、平局、乙胜的概率。 (显然这个概率是有理数,记为p/q,则输出答案为(p/q)%(1e9+7))(逆元) 注意 多组数据做一做把甲每个集合选的数表示为Ri-xi,0<=xi<=Ri-原创 2016-11-04 15:54:57 · 1026 阅读 · 0 评论 -
[bzoj2839]集合计数
题目大意有2^n个集合,每个集合只包含[1,n],且这些集合两两不同。问有多少种选择方法(至少选一个),使得这些集合交集大小为k。容斥原理先选出k个元素作为交集中含有的元素,方案数为CknC_n^k 接下来的问题是:选出集合使交集为空的方案数 ∑ni=0(−1)i∗Cin∗(22n−i−1)\sum_{i=0}^n(-1)^i*C_n^i*(2^{2^{n-i}}-1) 后面那个怎么理解?包含原创 2016-09-19 14:37:16 · 2153 阅读 · 0 评论 -
[OICamp 2016 Day5A]鞍点
题目大意一个n*m矩形,每个格子的数都在[1,p],求至少有一个鞍点的矩形个数。(i,j)为鞍点定义为(i,j)的权值在第i行和第j列都严格最大。DP我们设f[i,j]表示目前有i个鞍点,鞍点的权值不大于j的矩形个数。 我们把这i行i列摆在一起。 现在枚举权值为j+1的鞍点个数x,那么就是从f[i,j]推到f[i+x,j+1],选x行选x列的方案Cxn−i∗Cxm−iC_{n-i}^x*C_{m原创 2016-09-18 21:25:56 · 552 阅读 · 0 评论 -
找数
题目大意及模型转换找出第N个最小素因子是P的正整数。 N,P<=10^9,如果结果超过10^9则输出0否则输出这个数。超过10^9我们先来处理结果超过10^9。 显然,对于一个质数p,第一个符合条件的是自己,第二个就是p*p。 我们发现p<=10^9,也就是说,n=1的情况所有质数都不会超过10^9。 超过的情况会从第二个开始。 那么首先可以知道,对于大于109−−−√\sqrt{10^9原创 2015-08-30 20:13:01 · 999 阅读 · 1 评论