UVA
来源:互联网 发布:淘宝买家3心要多少信誉 编辑:程序博客网 时间:2024/06/04 18:11
题意:
求1~n中不能被给定m个数中任意一个数整除的数的个数
思想:
n-(1~n中至少能被m个数中的一个整除的数个数)
解法:
容斥原理的思想,多减的数要加回去
比如第一组样例:10 - 能被2整除的数的个数 - 能被3整除的数的个数 + 能被6整除的数的个数
第二组样例:20-能被2整除的数的个数-能被4整除的数的个数+能被4整除的数的个数(2,4的最小公倍数)
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll p[20];ll LCM(ll a,ll b){ ll tmp = __gcd(a,b); return a/tmp*b;}int main(){ int n, m; int i, j; while(scanf("%d%d", &n, &m) != EOF) { for(i = 0; i < m; i++) scanf("%lld", &p[i]); int sum = 0; for(i = 1; i < (1<<m); i++) { ll mult = 1, tmp = 1; int ones = 0; for(j = 0; j < m; j++) { if(i&(1<<j)) { mult = LCM(mult, p[j]); if(mult > n) break; ones++; } } if(mult > n) continue; if(ones % 2) sum += n / mult; else sum -= n / mult; } printf("%d\n", n - sum); } return 0;}
阅读全文
0 0
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- 4.3、Linux安装tomcat服务器
- Hdu6114 Chess( 2017"百度之星"程序设计大赛
- tensorflow 安装
- NLTK学习之一:简单文本分析
- Codeforces Round #428 (Div. 2) C.Journey(dfs求期望)
- UVA
- TensorFlow学习之CS20SI 之二
- Kadane's algorithm(Kadane算法)
- n编程快速上手之第八章8.9.3实践项目
- 排序算法
- Chess(组合数公式)
- python基础笔记
- SSL2684 2017年8月12日提高组T3 YMW的三角形(math)
- Treap