Bzoj 1853: [Scoi2010]幸运数字 容斥原理,深搜
1853: [Scoi2010]幸运数字
Time Limit: 2 Sec Memory Limit: 64 MB
Submit: 1774 Solved: 644
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 10
【样例输入2】
1234 4321
Sample Output
2
【样例输出2】
809
HINT
【数据范围】
对于30%的数据,保证1 < =a < =b < =1000000
对于100%的数据,保证1 < =a < =b < =10000000000
Source
题解:
容斥原理+爆搜。
记得开double或unsigned long long。
#include<bits/stdc++.h>
using namespace std;
#define LL unsigned long long
LL sum,cc[],lc,a,b;
bool vis[];
LL Gcd(LL aa,LL bb){if(bb==)return aa;else return Gcd(bb,aa%bb);}
void DFS(LL x,LL y,LL gs,LL lcm, LL gcd,LL ii)
{
LL LCM,GCD,i;
//if(lcm>x||lcm>y)return;
if(lcm>x&&lcm>y)return;
if(gs>)
{
if(gs%!=)sum+=((LL)(y/lcm)-(LL)(x/lcm));
else sum-=((LL)(y/lcm)-(LL)(x/lcm));
}
if(gs==lc+||ii+>lc)return;
for(i=ii+;i<=lc;i++)
{
if(vis[i]==false)
{
vis[i]=true;
LCM=lcm;GCD=gcd;
gcd=Gcd(lcm,cc[i]);lcm=(lcm*cc[i])/gcd;
DFS(x,y,gs+,lcm,gcd,i);
lcm=LCM;gcd=GCD;
vis[i]=false;
}
}
}
LL calc(LL x,LL y)
{
/*for(i=1;i<=lc;i++)
{
tot=0;
DFS(x);
}*/
memset(vis,false,sizeof(vis));sum=;
DFS(x-,y,,,,);
return sum;
}
void dfs(LL k)
{
if(k>b)return;
if(k!=)cc[++lc]=k;
dfs(k*+);
dfs(k*+);
}
int main()
{
LL len,i;
scanf("%lld %lld",&a,&b);
memset(cc,,sizeof(cc));lc=;
dfs();
sort(cc+,cc+lc+);
len=unique(cc+,cc+lc+)-(cc+);
for(i=;i<=len/;i++)swap(cc[i],cc[len-i+]);
lc=len;
printf("%lld",calc(a,b));
return ;
}
Bzoj 1853: [Scoi2010]幸运数字 容斥原理,深搜的更多相关文章
- BZOJ_2393_Cirno的完美算数教室&&BZOJ_1853_[Scoi2010]幸运数字 _深搜+容斥原理
BZOJ_2393_Cirno的完美算数教室&&BZOJ_1853_[Scoi2010]幸运数字 _深搜+容斥原理 题意: ~Cirno发现了一种baka数,这种数呢~只含有2和⑨两种 ...
- BZOJ 1853: [Scoi2010]幸运数字
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 2117 Solved: 779[Submit][Status] ...
- bzoj 1853: [Scoi2010]幸运数字 容斥
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 1170 Solved: 406[Submit][Status] ...
- 1853: [Scoi2010]幸运数字[容斥原理]
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 2405 Solved: 887[Submit][Status] ...
- BZOJ 1853: [Scoi2010]幸运数字(容斥原理)
http://www.lydsy.com/JudgeOnline/problem.php?id=1853 题意: 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运 ...
- bzoj 1853: [Scoi2010]幸运数字&&2393: Cirno的完美算数教室【容斥原理】
翻了一些blog,只有我用状压预处理嘛2333,.把二进制位的0当成6,1当成8就行啦.(2393是2和9 然后\( dfs \)容斥,加上一个数的\( lcm \),减去两个数的\( lcm \), ...
- ●BZOJ 1853 [Scoi2010]幸运数字
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1853 题解: 容斥原理,暴力搜索,剪枝(这剪枝剪得真玄学) 首先容易发现,幸运号码不超过 2 ...
- 【BZOJ 1853】 1853: [Scoi2010]幸运数字 (容斥原理)
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 2472 Solved: 911 Description 在中国 ...
- BZOJ2393 & 1853 [Scoi2010]幸运数字 【搜索 + 容斥】
题目 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的"幸运号码"是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是" ...
随机推荐
- 九度OJ 1078 二叉树遍历
题目地址:http://ac.jobdu.com/problem.php?pid=1078 题目描述: 二叉树的前序.中序.后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历 ...
- Linux的关机与重启命令
Linux的关机与重启命令 作者: Aillo, 发布于2009-05-10, 在系统分类下, 1条留言. 重启命令:1.reboot2.shutdown -r now 立刻重启(root用户使用)3 ...
- compass sprite
1.compass init 初始化一个compass项目,并创建一个images文件夹用来存放合成的sprite图 2.将切好的小图放到images文件夹中 3.在sass文件夹中新建一个test. ...
- 网站开发常用jQuery插件总结(11)折叠插件Akordeon
实现折叠菜单,可以完全不使用插件.如果使用jquery的话,实现起来也比较简单,我们只需要定义折叠菜单的样式,然后使用jquery中的渐隐渐现就可以了.如果我们自己写折叠菜单,可以方便的使用我们自己的 ...
- Jquery div边框大全
网址 http://jquery.malsup.com/corner/ jQuery Corner是一款jQuery的插件,最初由Dave Methvin开发,但后在Malsup同志的协助下,进行了一 ...
- datatable的数据转置
没有具体测试过,5w条数据在i5机器上大概是1.3~2s左右,但是个人感觉就是在处理数据库的分页或者是写条件的时候会有一些麻烦,不如使用数据库分页! 但是这种方法不失为一种思路 private voi ...
- PHP正则表达式 验证电子邮件地址
我们最经常遇到的验证,就是电子邮件地址验证.网站上常见.各种网页脚本也都常用“正则表达式”(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法.有的还能分解出用户名和 ...
- Python的面向对象4
今天我们接着来聊聊继承! 那什么是继承呢? 新写的类是不必重新编写,只要从现有的类继承,就自动拥有了该类的所有功能,新类只需要编写现有类缺少的功能,可以复用已有的代码! python的继承的特点: 继 ...
- windows下python 编码问题
windows下py文件编码: 当print 时遇到unicode 会根据系统编码转换, 而raw_input 中的输出遇到unicode编码是不会的转码的,会报错UnicodeEncodeError ...
- nutch2.2.1
http://blog.csdn.net/leave00608/article/details/17442163 https://svn.apache.org/repos/asf/nutch/tags ...