
容斥原理
Joker & Liar
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ZOJ - 3233 (Lucky Number)
题意:求 [low,high] 内有多少个数满足,这些数至少能整除一个 A[] 里面的数的同时不能整除任何所有B[]里面的数; 分析:设 A 为满足[low,high] 内可以整除A[] 内至少一个数的数量,B为满足[low,high] 内可以整除B[] 内所有数的数量,则 ANS=A-AB,容斥一下就好了; 代码: #include<cmath> #includ...原创 2020-02-23 15:51:02 · 206 阅读 · 0 评论 -
ZOJ - 2836 (Number Puzzle)
题意:给出 N 个数的集合S 和 M ,求 M 内有多少数至少是S 中一个数的倍数; 分析:简单容斥一下就好了; 代码: #include<cstdio> #include<iostream> using namespace std; int A[15],n,m; int gcd(int a,int b){ if(a==0) return b; ...原创 2020-02-23 14:01:06 · 187 阅读 · 0 评论 -
HDU - 1695 (GCD)
题意:给定 b , d , k ,求 分析:转换一下就是求 这类题目可以用莫比乌斯反演和容斥做,前者会快一些,这里用容斥做一下,注意(x,y)和 (y,x) 是算一个 ; 代码: #include<vector> #include<cstdio> #include<cstring> #include<iostream> ...原创 2020-02-23 13:39:19 · 131 阅读 · 0 评论 -
HDU - 2841 (Visible Trees)
题意:有一个农民站在(0,0)点,从(1,1)点到(m,n)点每个点上有棵树,问这个农民能看到多少棵树。树被挡就看不到; 分析:对于一个坐标(x,y),当 x 与 y 互质时农民就可以看到,否则不行,所以这题相当于求 ...原创 2020-02-22 23:47:28 · 295 阅读 · 0 评论 -
HDU - 1796 (How many integers can you find)
题意:给一个数N ,然后有M 个数的集合S,求小于N的数有多少个与S中至少一个数不互质; 分析:显而易见的容斥,输入的时候注意把集合S中的0去掉就可以了; 代码: #include<cstdio> #include<iostream> using namespace std; typedef long long ll; int num[20]; i...原创 2020-02-22 23:11:17 · 119 阅读 · 0 评论 -
HDU - 2204 (Eddy's爱好 )
题意:求从 1 到 N 中共有多少个数可以表示成M^K 的形式 , K>1 且 N≤1e18; 分析:首先看 K ,若存在 M 满足 M^K<=N ,则对于所有的 m<=M ,都有 m^K<=N,且由于2^60>1e18,K上限为60,所以我们枚举K,但是如果我们枚举的K不互质的话肯定会存在重复,比如 2^4 和 4^2,所以进一步我们需要枚举K为质数的情况...原创 2020-02-22 21:16:33 · 211 阅读 · 0 评论