容斥原理
Neo__Z
这个作者很懒,什么都没留下…
展开
-
POJ1091 跳蚤 【容斥】
题目链接:http://poj.org/problem?id=1091解题报告:设数字分别为a1,a2,a3……ma_1,a_2,a_3……m,那么若方程x1a1+x2a2+……xn+1m=1有解x_1a_1+x_2a_2+……x_{n+1}m=1有解,则这张卡片可行。而此方程有解的充要条件为gcd(a1,a2,a3……m)=1gcd(a_1,a_2,a_3……m)=1,所以本题即为求gcd(a1,原创 2017-08-28 16:40:43 · 283 阅读 · 0 评论 -
hdu2048 神、上帝以及老天爷【错排问题】【容斥原理】
解题思路:即是求错排数。 先是递推的做法将错排方法数记为D(n)。1. 把第n个元素放在一个位置,比如k,有n-1种方法。2. 编号为k的元素有两种放法。 把它放到位置n。那么对于剩下的n-2个元素,就有D(n-2)种方法。 不把它放到位置n。那么对于剩下的n-1个元素,就有D(n-1)种方法。由此可得递推公式: D(n) = (n-1) *原创 2018-01-07 15:21:01 · 362 阅读 · 0 评论 -
bzoj4671: 异或图【容斥原理+线性基】
解题思路:考虑容斥,枚举点的集合划分,强制两两集合间的点不连通,集合内的点任意连,若划分成m个集合,则最后至少有m个连通块。而一个m的划分,在容斥时会被计算∑i=1mSim\sum\limits_{i=1}^mS_m^i次(SS为第二类斯特林数)。所以列出容斥系数计算式:∑i=1mSimfi=[m=1]\sum\limits_{i=1}^mS_m^if_i=[m=1],打表找规律可原创 2018-01-07 19:48:10 · 944 阅读 · 0 评论 -
bzoj3622: 已经没有什么好害怕的了【动态规划+容斥原理】
解题思路:当n+kn+k是奇数时肯定无解。 然后k=(n+k)/2k=(n+k)/2,直接算糖果大于药片的对数刚好有kk个。恰好为kk 的不好算, 那就来算 ≥k≥ k 的.首先对两个队的数组分别从小到大排序, 记 cnticnt _i 表示 aia _i 比 B中多少元素大.设f(i,j) f(i,j) 表示考虑了 a1,...,aia _1 ,...,a_i , 在其中选出j原创 2018-01-07 22:31:33 · 257 阅读 · 0 评论 -
BJ模拟 and【容斥】
题目描述:解题思路:#include<bits/stdc++.h>using namespace std;int getint(){ int i=0,f=1;char c; for(c=getchar();c!='-'&&(c<'0'||c>'9');c=getchar()); if(c=='-')f=-...原创 2018-04-21 17:11:47 · 272 阅读 · 0 评论 -
bzoj4361: isn【树状数组优化dp+容斥】
Description给出一个长度为n的序列A(A1,A2…AN)。如果序列A不是非降的,你必须从中删去一个数, 这一操作,直到A非降为止。求有多少种不同的操作方案,答案模10^9+7。Input第一行一个整数n。 接下来一行n个整数,描述A。Output一行一个整数,描述答案。Sample Input41 7 5 3Sample Outpu...原创 2018-05-17 15:41:33 · 183 阅读 · 0 评论 -
loj#2541. 「PKUWC 2018」猎人杀【容斥+概率dp+生成函数+分治FFT】
传送门解题思路:思路巧妙……原题中每轮概率都在变化,一脸不可做,但注意到对问题的转化: 我们杀人后将其打上标记,但还是可以以他为目标重复选,直到选到一个未打标记的人。 这和原问题等价,而且这样每轮选中每人的概率都不变。考虑容斥,枚举强制在1号后面死的人,即1号至少在这些人前面,令 A=∑wiA=∑wiA=\sum w_i,SSS 为枚举到的人的 wiwiw_i 之和,ttt 为...原创 2018-05-29 15:14:59 · 1743 阅读 · 0 评论 -
loj#2542. 「PKUWC 2018」随机游走
传送门解题思路:Min-Max容斥真神奇……然而不知如何证明……设 Max(s)Max(s)Max(s) 表示集合里最晚被访问的节点被访问的期望步数(也就是访问所有节点的期望步数)。设 Min(s)Min(s)Min(s) 表示集合里最早被访问的节点被访问的期望步数(也就是第一次访问到集合里的节点的期望步数)那么 Max(s)=∑T∈S(−1)|T|+1Min(T)Ma...原创 2018-05-29 17:08:37 · 782 阅读 · 0 评论