刘汝佳《训练指南》里的一道例题。典型的容斥原理的应用。设C(M*N,K)为在M行,N列里放K个数的方案数。因为要求第一列,最后一列,第一行,最后一行都有放置,显然答案为:
C(M*N,K)-(2*C(M*(N-1),K)+2*C((M-1)*N,K))+(4*C((M-1)*(N-1),K)+C(N*(M-2),K)+C((N-2)*M,K))-(2*C((N-2)*(M-1),K)+2*C((...
分类:
其他好文 时间:
2015-02-17 16:31:03
阅读次数:
159
题意:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数
思路:在hdu1695的基础上加上容斥,即:ans=solve(b/k,d/k)-solve((a-1)/k,d/k)-solve((c-1)/k,b/k)+solve((a-1)/k,(c-1)/k),详见代码:
/************...
分类:
其他好文 时间:
2015-02-17 11:39:27
阅读次数:
143
题意:给定a,b,c,d,k
x属于[1 , c],y属于[1 , d],求满足gcd(x,y)=k的对数。其中和算相同。
思路:不妨设c
那么假如yc/k,就只能从[ c/k+1 , d ]枚举,然后利用容斥。详见代码:
/*******************************************************...
分类:
其他好文 时间:
2015-02-11 22:05:12
阅读次数:
189
HDU 4336 Card Collector(容斥原理 or 状压求期望dp)...
分类:
其他好文 时间:
2015-02-09 16:10:53
阅读次数:
137
VJ 点击打开链接
参考 点击打开链接
非常好的译文:点击打开链接
容斥原理的想法就是求多个集合的并集.所以要先设计好集合.
组合数学问题中,正面解决会困难,常用方法是正难则反,使用容斥原理求反向在用全集减去.将对立面的限制条件分析清楚.
eg 求区间互质的数的个数,则用除法等计算出一个数的倍数的方法再减去.
UVa 11806 Cheerleaders
求k个石子放...
分类:
其他好文 时间:
2015-02-08 09:03:28
阅读次数:
310
随便rand出一道题没想到这么可怕QAQ
之前没写过容斥的题
写这个题是第一次
Description
在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”!但是这种“幸运号码”总是太少了,比如在[1,100]的区间内就只有6个(6,8,66,68,86,88),于...
分类:
其他好文 时间:
2015-02-07 11:48:07
阅读次数:
111
莫比乌斯反演/容斥原理 OrzPoPoQQQ PoPoQQQ莫比乌斯函数讲义第一题。for(i=1;i12 #include13 #include14 #include15 #include16 #define rep(i,n) for(int i=0;i=n;--i)19 using name.....
分类:
其他好文 时间:
2015-02-07 00:22:35
阅读次数:
212
题目大意:给定n个元素,求交集大小为k的集合的集合共有多少种
考虑容斥原理 计算交集大小至少为i的集合有多少种
首先需要选出i个元素 方案为C(n,i)
其它2^(n-i)个集合每个可选可不选 一共2^[2^(n-i)]种
故答案为Σ[k
#include
#include
#include
#include
#define M 1001001
#define MOD 10000...
分类:
其他好文 时间:
2015-02-05 14:58:17
阅读次数:
161
题目大意:有一个序列,大小为m,里面有m个不超过20的非负数,各不相同。要求在1-n中有多少个能被m个数中任意一个数整除。
题目思路:简单的容斥原理应用。就不说了直接上代码。
有两种方法,一种是DFS,一种是直接位元素枚举暴力(study from zhixiaoli)
DFS:(速度较快)
#include
#include
using namespace std;
long long ...
分类:
其他好文 时间:
2015-02-03 13:19:07
阅读次数:
144
详细的题目大意与解析大家参考一下kuangbin的文章。
kuangbin链接
这边说一下自己对于kuangbin代码以及容斥原理位元素枚举的理解与解释,希望对大家有所帮助。
状态DP AC代码:状态压缩的思想我就不赘述了,我也只是略懂,这边仅仅分析一下状态方程
由于量比较多,我这边有的便用文字代替,有利于描述。
dp[i]表示i状态达到满状态(即收集满n个物品,以下称满状态)所需要的期...
分类:
其他好文 时间:
2015-02-03 09:36:21
阅读次数:
179