【bzoj1853】: [Scoi2010]幸运数字

预处理出所有幸运数字然后容斥原理

但是幸运数字是2logn个数的 直接搞会炸

所以把成倍数的处理掉

然后发现还是会T 所以数字要从大到小处理会快很多 我也不知道为什么

还有就是剪枝的时候要开double 不然爆longlong

 /* http://www.cnblogs.com/karl07/ */
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <algorithm>
using namespace std;
#define ll long long const ll N=;
ll num[];
ll a,b,cnt,ans,cc; ll gcd(ll a,ll b){ return b== ? a : gcd(b,a%b);}
ll lcm(ll a,ll b){ return a/gcd(a,b)*b;} void dfs(ll x,ll n){
if (x>n) return;
num[++cnt]=x;
dfs(x*+,n);
dfs(x*+,n);
} void rc(ll c,ll x,ll n,ll nw){
if (x==){
if (c==) return;
if (c&) ans+=n/nw; else ans-=n/nw;
return;
}
if ((double)nw/gcd(num[x],nw)*num[x] <= n) rc(c+,x-,n,lcm(nw,num[x]));
rc(c,x-,n,nw);
} ll work(ll n){
if (n<) return ;
cnt=;ans=;
dfs(,n);dfs(,n);cc=cnt;
num[]=;
sort(num+,num+cnt+);
for (int i=;i<=cnt;i++){
for (int j=i+;j<=cnt && num[i]!=N;j++){
if (num[j]%num[i]==) num[j]=N,cc--;
}
}
sort(num+,num+cnt+);
rc(,cc-,n,num[cc]);
rc(,cc-,n,);
return ans;
} int main(){
scanf("%lld%lld",&a,&b);
printf("%lld\n",work(b)-work(a-));
return ;
}

【bzoj1853】: [Scoi2010]幸运数字 数论-容斥原理的更多相关文章

  1. bzoj1853: [Scoi2010]幸运数字 dp+容斥原理

    在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”!但是这种“幸运号码”总是 ...

  2. BZOJ1853 Scoi2010 幸运数字 【枚举+容斥】

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

  3. bzoj1853[Scoi2010]幸运数字 容斥

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

  4. 【BZOJ 1853】 1853: [Scoi2010]幸运数字 (容斥原理)

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 2472  Solved: 911 Description 在中国 ...

  5. [BZOJ1853][Scoi2010]幸运数字 容斥+搜索剪枝

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

  6. BZOJ1853 [Scoi2010]幸运数字 容斥原理

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1853 题意概括 求一个区间范围内,近似幸运数字的个数. 定义: 幸运数字:仅由6或者8组成的数字. ...

  7. BZOJ1853 [Scoi2010]幸运数字

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  8. BZOJ 1853: [Scoi2010]幸运数字(容斥原理)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1853 题意: 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运 ...

  9. 2019.01.17 bzoj1853: [Scoi2010]幸运数字(容斥+dfs)

    传送门 搜索菜题,然而第一次没有注意然后爆longlonglong longlonglong了. 题意:称所有数位由6,86,86,8组成的数为幸运数字,问一个一个区间[l,r][l,r][l,r]中 ...

随机推荐

  1. 此上下文中不允许异步操作。启动异步操作的页必须将 Async 特性设置为 true,并且异步操作只能在 PreRenderComplete 事件之前的页上启动。

    <%@ Page Language="C#" AutoEventWireup="true" ...... Async="true" % ...

  2. MessageBox如何输出整数

    int cx=10;CString s;s.Format(_T("整数是:%d"),cx);MessageBox(s);

  3. paramiko监控 windows服务器 被监控服务器只需要安装openssh服务即可基于wmic完成大部分监控

    #!/usr/bin/python #-*- coding: UTF-8 -*- #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  4. 11-23网页基础--JavaScript基础知识

    第一课 JavaScript简介 一.定义:JavaScript是脚本语言,需要宿主文件,它的宿主文件是html文件. JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 ...

  5. 问题:iis配置json;结果:如何配置iis支持.json格式的文件

    如何配置iis支持.json格式的文件 | 浏览:1357 | 更新:2015-04-05 11:00 | 标签:软件 1 2 3 4 5 6 7 分步阅读 现在大家在制作HTM5的一些小场景,小游戏 ...

  6. nginx注册成服务

    http://blog.csdn.net/t37240/article/details/51727563

  7. [Python Study Notes]饼状图绘制

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  8. Call requires API level 7 (current min is 1):(问题解决)

    在一个导入的项目里修改加入webView的时候设置缩放属性的设置报错: Call requires API level 7 (current min is 1): android.webkit.Web ...

  9. css知多少(8)——float上篇(转)

    1. 引言 对于我们所有的web前端开发人员,float是或者曾经一度是你最熟悉的陌生人——你离不开它,却整天承受着它所带给你的各种痛苦,你以为它很简单就那么一点知识,但却驾驭不了它各种奇怪的现象. ...

  10. LINUX中错误 SELinux is disabled

    解决: setenforce: SELinux is disabled 那么说明selinux已经被彻底的关闭了 如果需要重新开启selinux,请按下面步骤: vi /etc/selinux/con ...