【bzoj1853】【Scoi2010】【幸运数字】【搜索】
来源:互联网 发布:淘宝福利搜索关键词 编辑:程序博客网 时间:2024/06/06 06:44
Description
在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”!但是这种“幸运号码”总是太少了,比如在[1,100]的区间内就只有6个(6,8,66,68,86,88),于是他又定义了一种“近似幸运号码”。lxhgww规定,凡是“幸运号码”的倍数都是“近似幸运号码”,当然,任何的“幸运号码”也都是“近似幸运号码”,比如12,16,666都是“近似幸运号码”。 现在lxhgww想知道在一段闭区间[a, b]内,“近似幸运号码”的个数。
Input
输入数据是一行,包括2个数字a和b
Output
输出数据是一行,包括1个数字,表示在闭区间[a, b]内“近似幸运号码”的个数
Sample Input
【样例输入1】
1 10
【样例输入2】
1234 4321
1 10
【样例输入2】
1234 4321
Sample Output
【样例输出1】
2
【样例输出2】
809
2
【样例输出2】
809
HINT
【数据范围】
对于30%的数据,保证1 < =a < =b < =1000000
对于100%的数据,保证1 < =a < =b < =10000000000
题解:同2393只是数据比较强,几个数乘的时候会爆longlong,所以需要用long double
代码:
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define N 5010using namespace std;long long a[N],b[N],vis[N],ans,l,r;long long gcd(long long a,long long b){return b?gcd(b,a%b):a;}void pro(long long x){if (x>r) return;a[++a[0]]=x;pro(x*10+6);pro(x*10+8);} void dfs(int p,int f,long long v){ if(!p){if(v!=1)ans+=(r/v-(l-1)/v)*f;return;} dfs(p-1,f,v); long long temp=b[p]/gcd(v,b[p]);if((long double)temp*v>r) return; dfs(p-1,-f,temp*v);}int main(){ scanf("%lld%lld",&l,&r);pro(6);pro(8);sort(a+1,a+a[0]+1); for (int i=1;i<a[0];i++) for (int j=i+1;j<=a[0];j++) if (a[j]%a[i]==0) vis[j]=1; for (int i=1;i<=a[0];i++) if (!vis[i]) b[++b[0]]=a[i]; dfs(b[0],-1,1); cout<<ans<<endl;}
0 0
- 【bzoj1853】【Scoi2010】【幸运数字】【搜索】
- 【SCOI2010】【BZOJ1853】幸运数字
- bzoj1853【SCOI2010】幸运数字
- 【bzoj1853】【scoi2010】幸运数字
- bzoj1853: [Scoi2010]幸运数字
- bzoj1853: [Scoi2010]幸运数字
- 【bzoj1853】[Scoi2010]幸运数字
- 【bzoj1853】 Scoi2010—幸运数字
- 组合数学专题:【BZOJ1853】【SCOI2010】幸运数字
- 【bzoj1853】 SCOI2010幸运数字 容斥原理
- BZOJ1853 [Scoi2010]幸运数字 容斥原理
- [BZOJ1853][SCOI2010][容斥原理]幸运数字
- bzoj1853[Scoi2010]幸运数字 容斥原理
- bzoj2393/bzoj1853 Cirno的完美算数教室/[Scoi2010]幸运数字 搜索+容斥
- bzoj1853: [Scoi2010]幸运数字 dp+容斥原理
- BZOJ1853 [Scoi2010]幸运数字 [容斥原理]【组合数学】
- bzoj1853【scoi2010】幸运数字(暴力出奇迹)
- [BZOJ1853][Scoi2010]幸运数字(容斥原理)
- jbpm应用开发
- CODE[VS]1215 迷宫(DFS
- HTTP 错误 500.19 - Internal Server Error
- JavaScript JavaScript对checkbox的校验
- [转]其实你不懂wget的心 http://www.cnblogs.com/cbscan/articles/2276817.html
- 【bzoj1853】【Scoi2010】【幸运数字】【搜索】
- 巧用 adb logcat
- MyBatis 中in的使用
- 系统相册和照相机
- 使用CocoaPods 删除已经配置的类库和移除CocoaPods
- 找不到符号
- 利用HTML5开发Android
- 【LEETCODE】59-Spiral Matrix II
- UITableView中visibleCells方法的使用