#Vijos P1629#八
来源:互联网 发布:寻仙网络错误连接失败 编辑:程序博客网 时间:2024/06/14 10:13
组合数学三
时间限制: 1 Sec 内存限制: 64 MB[提交][状态][我的提交]
题目描述
八是个很有趣的数字啊。八=发,八八=爸爸,88=拜拜。当然最有趣的还是8用二进制表示是1000。怎么样,有趣吧。当然题目和这些都没有关系。 某个人很无聊,他想找出[a,b]中能被8整除却不能被其他一些数整除的数。
输入
第一行一个数n,代表不能被整除的数的个数。 第二行n个数,中间用空格隔开。 第三行两个数a,b,中间一个空格。 a < =b < =1000000000
输出
一个整数,为[a,b]间能被8整除却不能被那n个数整除的数的个数。
样例输入
(如果复制到控制台无换行,可以先粘贴到文本编辑器,再复制)
37764 6082 4622166 53442
样例输出
6378
提示
对于30%的数据, 1 ≤n ≤5,1 ≤a ≤ b ≤ 100000。
对于100%的数据,1 ≤ n ≤15,1 ≤ a ≤ b ≤ 10^9,N个数全都小于等于10000大于等于1。
用Ax来表示在[ a , b ]能被x整除的数,则问题变为求 A8 ∩ (b - a + 1 - A(a[1]) ∪ A(a[2]) ∪ A(a[3]) ∪ .... ∪ A(a[n]) )
Ans = [a , b]中所有能被8整除的数的个数 - [a , b]中既能被8整除又能被其他数整除的数的个数
容斥原理求[a , b]中既能被8整除又能被其他数整除的数的个数
#include<iostream>//容斥原理#include<cstdio>#include<cmath>using namespace std;typedef unsigned long long ULL;int a[16],b[16];int N;ULL A,B,ans;ULL gcd(ULL a,ULL b){return b?gcd(b,a%b):a;}void Dfs(int i,ULL num,int cnt){if(i>N){if(cnt&1)ans+=B/num-A/num;else ans-=B/num-A/num;return ;}Dfs(i+1,num/gcd(num,a[i])*a[i],cnt+1);Dfs(i+1,num,cnt);}int main(){scanf("%d",&N);for(int i=1; i<=N; ++i)scanf("%d",&a[i]);scanf("%llu%llu",&A,&B);Dfs(1,8,1);printf("%llu\n",ans);return 0;}
0 0
- #Vijos P1629#八
- Vijos P1629 八
- Vijos 八数码问题
- vijos P1360 八数码问题
- [Vijos 1629] 八 · 容斥原理
- 【宽搜】Vijos P1360 八数码问题
- VIJOS-P1360 八数码问题 A*
- 洛谷P1629 邮递员送信
- 洛谷 P1629 邮递员送信
- 洛谷 P1629 邮递员送信
- 洛谷P1629 邮递员送信
- 洛谷 P1629 邮递员送信
- 洛谷P1629 邮递员送信
- 洛谷 P1629 邮递员送信
- 【洛谷】P1629 邮递员送信
- Luogu P1629 邮递员送信
- 巧解 洛谷 P1629 邮递员送信
- 【原创】【组合数学】vijos-1629 八(容斥原理+最小公倍数)
- Linux服务器域名绑定php网页
- RequireJS 学习笔记
- webview进度条设置之WebChromeClient常用API与功能使用详解
- 内存溢出内存泄漏区别
- caffe 介绍1
- #Vijos P1629#八
- linux Makefile = 号前带符号的作用解释
- textarea 显示换行
- Google Protocol Buffers 快速入门(带生成C#源码的方法)
- HoloLens Clicker配对及问题解决
- 几个常用的工具类-异步下载、handler下载工具类、图片缓存等
- pwnable.kr-random-Writeup
- 【Bzoj4326】运输计划
- chromium 获取系统语言的过程