就是爆搜嘛。

先从大到小排个序能减去dfs树上很大的一部分。这个技巧要掌握。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define maxn 100500
using namespace std;
long long l,r,num[maxn],s[maxn],t1=,t2=,t,ans=;
bool vis[maxn];
void get_baka(long long bit,long long nums)
{
if ((bit>t) || (nums>r)) return;
if (nums) num[++t1]=nums;
get_baka(bit+,nums*+);
get_baka(bit+,nums*+);
}
long long gcd(long long a,long long b)
{
if (!b) return a;
return gcd(b,a%b);
}
long long lcm(long long a,long long b)
{
return a*b/gcd(a,b);
}
void dfs(long long now,long long num,long long val)
{
if (now==t2+)
{
if (num!=) ans+=((r/num)-((l-)/num))*val;
return;
}
dfs(now+,num,val);
long long aft=lcm(num,s[now]);
if (aft<=r) dfs(now+,aft,val*(-));
}
int main()
{
scanf("%lld%lld",&l,&r);
t=(long long)(log(r)/log())+;
get_baka(,);
sort(num+,num+t1+);
for (long long i=;i<=t1;i++)
{
if (vis[i]) continue;
s[++t2]=num[i];
for (long long j=i+;j<=t1;j++)
{
if (!num[j]%num[i])
vis[j]=true;
}
}
for (int i=;i<=t2;i++) num[i]=s[t2-i+];
for (int i=;i<=t2;i++) s[i]=num[i];
dfs(,,-);
printf("%lld\n",ans);
return ;
}

BZOJ 2393 Cirno的完美算数教室的更多相关文章

  1. Bzoj 2393: Cirno的完美算数教室 容斥原理,深搜

    2393: Cirno的完美算数教室 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 287  Solved: 175[Submit][Status][ ...

  2. ●BZOJ 2393 Cirno的完美算数教室

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2393 题解: 容斥原理,暴力搜索,剪枝...和 [Scoi2010 幸运数字] 一样的(只是 ...

  3. bzoj 2393 Cirno的完美算数教室(容斥原理+搜索)

    [题意] 定义C数为只包含数字2和9的数,求[L,R]内能被C数整除的个数. [思路] Dfs预处理出C数,并去除其中倍数的情况. Dfs搜索出现情况,奇数加,偶数减,当数值大于R时剪枝. [代码] ...

  4. [bzoj 2393] Cirno的完美算数教室 (容斥原理+dfs剪枝)

    题目描述 CirnoCirnoCirno发现了一种bakabakabaka数,这种数呢只含有222和999两种数字 现在CirnoCirnoCirno想知道[L,R][L,R][L,R]中有多少个数能 ...

  5. bzoj 1853: [Scoi2010]幸运数字&&2393: Cirno的完美算数教室【容斥原理】

    翻了一些blog,只有我用状压预处理嘛2333,.把二进制位的0当成6,1当成8就行啦.(2393是2和9 然后\( dfs \)容斥,加上一个数的\( lcm \),减去两个数的\( lcm \), ...

  6. 【BZOJ-1853&2393】幸运数字&Cirno的完美算数教室 容斥原理 + 爆搜 + 剪枝

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 1817  Solved: 665[Submit][Status] ...

  7. BZOJ2393: Cirno的完美算数教室

    2393: Cirno的完美算数教室 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 138  Solved: 83[Submit][Status] D ...

  8. 【BZOJ1853/2393】[Scoi2010]幸运数字/Cirno的完美算数教室 DFS+容斥

    [BZOJ1853][Scoi2010]幸运数字 Description 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那 ...

  9. BZOJ1853:[SCOI2010]幸运数字 & BZOJ2393:Cirno的完美算数教室——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=1853 https://www.lydsy.com/JudgeOnline/problem.php? ...

随机推荐

  1. thinkphp @代表什么

    import('@.ORG.Util.RBAC'); @表示在同一目录下.看一下Lib目录下除了Action外,还有ORG目录.如果使用@.ORG.Util.RBAC,则表示RBAC是放在Lib/OR ...

  2. thinkPHP开发基础知识 包括变量神马的

    hinkPHP框架开发的应用程序,一般都采用单一入口的方式,下面是在应用首页文件中实现的定义: 1.在首页定义thinkPHP框架路径 2.定义项目名称及路径,一般项目名称与项目文件夹名称保持一致 3 ...

  3. C++ 与设计模式学习(其一)

    记得曾经一年前,听到同学再说设计模式,当时觉得不怎么重要,所以就没有去系统的学习,这一放,就是一年,直到前段时间,面试了一个阿里巴巴的职位,要我谈谈对于设计模式的看法. 之后就好好了看了一些文章,好好 ...

  4. 在jsp页面中实现格式化数字,百分比,货币

    当时的要求是在jsp页面中计算百分比 实现方法 1.引入Jstl的fmt指令 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" ...

  5. ie6 ie7 绝对定位 相对定位 层被遮住

    relative 上加上z-index有多个,则z-index递减, absolute层显示则不会被其它标签挡住.

  6. JBoss像tomcat那样创建部署文件,JBoss创建虚拟目录

    jboss可以像tomcat那样,写一个配置文件,指向应用所在的路径,而不用将应用直接复制到deploy下的某一个以.war结尾的文件夹下吗? 答:好像是不能直接操作,但是可以通过变通的方式来搞定.在 ...

  7. mysqldump导出--数据+结构+(函数+存储过程)

    #导出某个数据库--结构+数据shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt db_name |gzip -9 > /db_ ...

  8. heartbeat安装

    wget ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/6rolling/i386/os/Packages/epel-release-6-5 ...

  9. POJ 1436 区间染色

    Horizontally Visible Segments Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4507   Ac ...

  10. Fair Photography

    题目大意: 给出直线上N个点的位置和颜色(0或1),求最大的区间,使得区间内0的个数大于等于1的个数且0的个数减去1的个数为偶数. 解题过程: 1.先贴个lsdsjy大牛的线段树的做法:http:// ...