容斥原理
文章平均质量分 80
谢符宝
业精于勤,荒于嬉行成于思,毁于随。
展开
-
hdu2841 (容斥原理递归版)
题意:给整数m,n;(m,n 解法:先线性筛素数法筛出100000之内每个数的质因子,然后容斥求1-n中有多少个数和i互质。 dfs(int i,int tool,int rem)表示的意思是:1-tool中含有rem位置之后的i的质因子的数的个数。 代码:/****************************************************原创 2014-04-11 17:45:13 · 1143 阅读 · 0 评论 -
ACdreamoj1114(Number theory)莫比乌斯容斥
题意:给n个数,为有多少互质对; 解法:然后求出mou值,然后求出1,2,3...max的倍数的个数,每个出现在gcd中的对数(num[i]*(num[i]-1))/2,乘上mou值进行容斥计算。 代码:/****************************************************** * author:xiefubao ******************原创 2014-06-12 17:06:58 · 896 阅读 · 0 评论 -
hdu4390-Number Sequence(容斥计算)
题意:给定b数列,计算有多少种数列 a1,a2,...,an 满足条件 a1*a2*...*an=b1*b2*…*bn (ai>1). 解法:处理出b数列中出现的所有质因子的数量记录在map中,然后进行容斥计算: 代码:/****************************************************** * author:xiefubao ********原创 2014-06-13 13:44:00 · 705 阅读 · 0 评论 -
CF(439E - Devu and Birthday Celebration)莫比乌斯容斥
题意:将n个糖果插入f原创 2014-06-12 13:41:17 · 1124 阅读 · 0 评论 -
BZOJ2440(完全平方数)二分+莫比乌斯容斥
题意:完全平方数是指含有平方数因子的数。求第ki个非完全平方数。 解法:比较明显的二分,getsum(int middle)求1-middle有多少个非完全平方数,然后二分。求1-middle的非完全平方数个数可以用总数减掉完全平方数个数。计算完全平方数的个数用容斥: 首先加上n/(2*2)+n/(3*3)+n/(5*5)+n/(7*7)...+...然后减掉出现两次的,然后加原创 2014-06-13 22:47:52 · 2175 阅读 · 0 评论 -
hdu1695(莫比乌斯)或欧拉函数+容斥
题意:求1-b和1-d之内各选一个数组成数对,问最大公约数为k的数对有多少个,数对是有序的。(b,d,k 解法1: 这个可以简化成1-b/k 和1-d/k 的互质有序数对的个数。假设b=b/k,d=d/k,b1-tool中含有rem位置之后的i的质因子的数的个数。 在 for(int j=rem;jfactor[i][0];j++) ans+=tool/factor[i]原创 2014-11-16 21:48:33 · 720 阅读 · 0 评论