ZOJ 2386 容斥原理
2017-06-16 17:29
288 查看
题意:给出n个数,和m(1<=m<=200 000 000),求1~M中能被这n个数其中任意一个数整除的个数;
分析:n范围很小,可以枚举选择被哪些数整除,被奇数个整数整除加m/这个n个数的公共最小公倍数;
View Code
分析:n范围很小,可以枚举选择被哪些数整除,被奇数个整数整除加m/这个n个数的公共最小公倍数;
#include <bits/stdc++.h> using namespace std; int n,m,a[15]; int gcd (int a,int b) { return b==0? a:gcd(b,a%b); } int lcm(int a,int b) { return a*b/gcd(a,b); } int multiple(int x,int* cnt) { int res = 1; *cnt = 0; for(int i=0;i<n;i++) { if(x&(1<<i)) { (*cnt)++; res = lcm(res,a[i]); } } return res; } int main() { while(scanf("%d%d",&n,&m)!=EOF) { int ans = 0; for(int i=0;i<n;i++) scanf("%d",&a[i]); int k; for(int i=1;i<(1<<n);i++) { int lcms = multiple(i,&k); if(k&1) ans+= m/lcms; else ans-=m/lcms; } printf("%d\n",ans); } return 0; }
View Code
相关文章推荐
- zoj 2836 Number Puzzle(容斥原理)
- 【ZOJ】3233【容斥原理】【Lucky Number】
- ZOJ 2386 Ultra-QuickSort(逆序数)
- [容斥原理] zoj 3556 How Many Sets I
- ZOJ 2386 归并排序
- ZOJ2836 容斥原理
- zoj 3556 How Many Sets I - 容斥原理
- ZOJ 2836 Number Puzzle(容斥原理)
- zoj 3547 - The Boss on Mars(容斥原理)
- zoj 2386 || poj 2299 Ultra-QuickSort
- zoj 2836 容斥原理
- ACM学习历程—ZOJ 3868 GCD Expectation(莫比乌斯 || 容斥原理)
- ZOJ 2836 Number Puzzle(容斥原理啊)
- ZOJ 2836 Number Puzzle (容斥原理)
- zoj 3556 How Many Sets I 解题报告 <容斥原理>
- ZOJ 3233 Lucky Number 容斥原理
- ZOJ2836-Number Puzzle-容斥原理
- ZOJ 3233 Lucky Number(数论,容斥原理)
- zoj 2836 Number Puzzle(容斥原理)
- POJ 2299 && ZOJ 2386 Ultra-QuickSort 线段树