容斥原理
文章平均质量分 53
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 3589 动态树 树链剖分+容斥原理
题目大意:给定一棵以1为根的有根树,每个节点有点权,提供两种操作: 1.以某个节点为根的子树所有节点权值+x 2.求一些链的并集的点权和,其中这些链都是由某个节点出发指向根 首先子树修改,链上查询,树链剖分的WT~ 然后这些链上的每个点的点权都只能被加一次,肯定不能打标记,由于k 总权值=单链-两两之交+三链之交…… 状压枚举即可 两条链的交集求法如下: 1.求两条链底的LCA 2原创 2014-10-23 12:51:43 · 2955 阅读 · 0 评论 -
BZOJ 1042 HAOI2008 硬币购物 背包+容斥原理
题目大意:给定4种硬币的面值,多次询问这个限定这四种硬币的个数时达到某一价值的方案数 十分巧妙的一个题……蒟蒻表示打死也想不到容斥原理0.0 首先先求出不限定硬币的方案数 然后利用容斥原理 ans=不限定硬币的方案数-(硬币1超出的方案数+硬币2超出的方案数+硬币3超出的方案数+硬币4超出的方案数)+(硬币1和硬币2都超出的方案数+……)-(硬币123都超出的方案数+……)+四种硬币都超出的原创 2014-10-22 16:20:33 · 1862 阅读 · 0 评论 -
BZOJ 3812 主旋律 状压DP+容斥原理
题目大意:给定一张有向图,求这张有向图的生成子图中有多少强连通图 正着做不好做,我们考虑容斥原理 如果一个图不连通,那么这张图缩点之后一定会形成一个点数>=2的DAG 一个DAG中一定会有一些入度为0的点,我们枚举这些点的点集进行容斥 具体DP方程和细节见代码 注释写的还是比较详细的我就不多说了= = #include #include #include #include #原创 2015-04-15 14:48:49 · 3307 阅读 · 0 评论 -
BZOJ 2839 集合计数 容斥原理
题目大意:给定n个元素,求交集大小为k的集合的集合共有多少种 考虑容斥原理 计算交集大小至少为i的集合有多少种 首先需要选出i个元素 方案为C(n,i) 其它2^(n-i)个集合每个可选可不选 一共(2^[2^(n-i)]-1)种 故答案为Σ[k #include #include #include #include #define M 1001001 #define MOD 1原创 2015-02-05 14:48:23 · 1846 阅读 · 0 评论 -
BZOJ 3622 已经没有什么好害怕的了 动态规划+容斥原理
题目大意:给定两个长度为n个序列,保证这2n个数字两两不同,求有多少匹配满足a[i]>b[i]的数对数比a[i] もう何も怖くない 题解:http://www.cnblogs.com/dyllalala/p/3900077.html OTZ 神思路根本就是想不到啊QAQ でも。。。もう何も怖くない。。。(大雾 此外我们可以引入一下WTY公式: C[i][j]=C[i-1][j]*原创 2015-03-21 10:48:46 · 3473 阅读 · 0 评论 -
BZOJ 2024 SHOI2009 舞会 动态规划+容斥原理+高精度
题目大意:给定两个序列,求有多少个匹配满足a[i] 见http://blog.csdn.net/popoqqq/article/details/44514113 高精度已废。。。 #include #include #include #include #include #define M 202 using namespace std; struct Big_Int{ #defi原创 2015-03-21 15:21:40 · 2168 阅读 · 0 评论 -
BZOJ 1853 SCOI2010 幸运数字 容斥原理+DFS
题目大意:求[l,r]区间内有多少个数是只由6和8组成的数的倍数 同2393 链接:http://blog.csdn.net/popoqqq/article/details/41807333 此题数据强力了一些 由于r 于是我们可以用double求出LCM的近似值与r进行比较 如果小于r再取精确值进行计算 此外就是搜索的时候要从大到小搜 从小到大会TLE #include #inclu原创 2014-12-10 14:44:30 · 1951 阅读 · 0 评论 -
BZOJ 2440 中山市选2011 完全平方数 二分答案+容斥原理+莫比乌斯反演
题目大意:求第k个无平方因子数是多少(无视原题干,1也是完全平方数那岂不是一个数也送不出去了? 无平方因子数(square-free number),即质因数分解之后所有质因数的次数都为1的数 首先二分答案 问题转化为求x以内有多少个无平方因子数 根据容斥原理可知 对于√x以内的所有质数 x以内的无平方因子数=无需是任何质数的倍数的数的数量(即x)-是至少一个质数平方倍数的数的数量+是至少两原创 2014-12-22 09:17:01 · 2540 阅读 · 2 评论 -
BZOJ 2393 Cirno的完美算数教室 容斥原理+DFS
警告:网上的题解都是误人子弟,看此篇题解之前请将脑海中对其它写于本题解之前的网上常见题解的印象全部消除之后方可阅读 此题的数据范围是10^9 但是10^10一样可以做 不影响 首先我们可以预处理出1~r以内所有只由2和9构成的⑨数 容易发现最多有1022个 但是其中有一些⑨数是另一些的倍数 比如说a是b的倍数 那么一个数如果是a的倍数那么就一定是b的倍数 我们只需要计算b即可 无需计算a 这原创 2014-12-08 19:52:04 · 1670 阅读 · 1 评论 -
BZOJ 3198 Sdoi2013 spring Hash+容斥原理
题目大意:给定n个元素,每个元素是一个六元组,求有多少对元素满足相同的位置恰好有k个 首先对于恰好有K个这种东西果断考虑容斥原理 我们2^6枚举相同的位置 恰好有k个元素相同的对数=至少有k个位置相同的对数-至少有k+1个位置相同的对数+至少有k+2个位置相同的对数…… 但是我们计数时会发现一些问题 比如下面这组样例显然是0: 2 3 1 2 3 4 5 5 1 2 3 4 6 6原创 2015-01-28 18:24:08 · 2793 阅读 · 2 评论 -
BZOJ 2301 HAOI2011 Problem b 容斥原理+莫比乌斯反演
题目大意:多次询问有多少个数对(x,y)满足a 首先利用容斥原理将询问分解 问题转化为求有多少个数对(x,y)满足x 这里就可以利用到莫比乌斯反演: 我们令F(d)为GCD(x,y)=d且x f(d)为d|GCD(x,y)且x 那么显然有F(d)=(n/d)*(m/d) 但是直接套用公式还是O(n^2)级别的 考虑到(n/d)*(m/d)最多只会有2√n个商 因此我们可以枚举原创 2014-12-16 11:25:06 · 2721 阅读 · 0 评论 -
BZOJ 2005 NOI2010 能量采集 数论+容斥原理
题目大意:给定n和m,求Σ(1 i和j的限制不同,传统的线性筛法失效了,这里我们考虑容斥原理 令f[x]为GCD(i,j)=x的数对(i,j)的个数,这个不是很好求 我们令g[x]为存在公因数=x的数对(i,j)的个数(注意不是最大公因数!),显然有g[x]=(n/x)*(m/x) 但是这些数对中有一些的最大公因数为2d,3d,4d,我们要把他们减掉 于是最终f[x]=(n/x)*(m/原创 2014-10-09 09:18:36 · 3050 阅读 · 0 评论 -
BZOJ 2669 cqoi2012 局部极小值 状压DP+容斥原理
题目大意:给定一个n∗mn*m的矩阵,标记出其中的局部极小值,要求填入1...n∗m1...n*m,求方案数《多年的心头大恨终于切掉了系列》 考虑将数字从小到大一个一个填进去 由于局部极小值最多88个,我们可以状压DP 令fi,jf_{i,j}表示已经填完了前ii个数,局部极小值的填充状态为jj的方案数 预处理出cntjcnt_j表示填充状态为jj时共有多少位置是可以填充的(包括已填充的局部原创 2015-08-27 15:46:15 · 5144 阅读 · 1 评论