[转]容斥原理的三种运用方式

在计数时,必须注意无一重复,无一遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 集合相交通常情况为奇加偶减,即加上重叠为奇次的,减去重叠为偶次的。

容斥原理是属于一种模板题目,一般简单的都是之间打模板,稍难的题目运用到了数学分析和数论的其他知识。

容斥原理分为三种实现:

1.位运算与二进制枚举(容易理解)

2.队列数组(耗时最短)

3.递归(代码最短但不容易理解)

http://blog.csdn.net/deepseazbw/article/details/76187211

HDU的一道题目用的三种方法实现,一般都是找出一个数字的素因子,然后用cnt(计算器)记录下来,然后分别三种方法实现.

实现容斥原理的时候

1.先计算出容斥部分,然后再用总数减去 http://blog.csdn.net/deepseazbw/article/details/76187211

2.在容斥部分的时候,就将总数带入进去 http://blog.csdn.net/deepseazbw/article/details/76660935

模板题目: HDU 4135 1695


文章结束了,但我们的故事还在继续
坚持原创技术分享,您的支持将鼓励我继续创作!