当前位置: 首页 > news >正文

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

1853: [Scoi2010]幸运数字

Time Limit: 2 Sec  Memory Limit: 64 MB
Submit: 2947  Solved: 1096
[Submit][Status][Discuss]

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

Sample Output

【样例输出1】
2
【样例输出2】
809

HINT

【数据范围】
对于30%的数据,保证1 < =a < =b < =1000000
对于100%的数据,保证1 < =a < =b < =10000000000

Source

Day1

卧槽这题不跟刚才那题一样一样的嘛【惊呆脸.jpg】貌似要加一些神奇的优化,比如b数组要从大到小存,酱紫有利于dfs剪枝???
 1 #include "bits/stdc++.h"
 2 using namespace std;
 3 typedef long long LL;
 4 const int MAX=3005;
 5 LL l,r,a[MAX],b[MAX],ans;
 6 bool p[MAX];
 7 void get(LL x){
 8     if (x>r) return;
 9     if (x) a[++a[0]]=x;
10     get(x*10+6),get(x*10+8);
11 }
12 LL gcd(LL x,LL y){return y==0?x:gcd(y,x%y);}
13 void dfs(LL x,LL y,LL lcm){
14     if (x>b[0]){
15         if (y&1) ans+=r/lcm-(l-1)/lcm;
16         else if (y) ans-=r/lcm-(l-1)/lcm;
17         return;
18     }
19     dfs(x+1,y,lcm);
20     LL g=gcd(b[x],lcm);
21     lcm/=g;
22     if (r/lcm<b[x]) return;
23     lcm*=b[x];
24     dfs(x+1,y+1,lcm);
25 }
26 int main(){
27     freopen ("lucky.in","r",stdin);freopen ("lucky.out","w",stdout);
28     int i,j;
29     scanf("%lld%lld",&l,&r);
30     get(0);sort(a+1,a+a[0]+1);
31     for (i=1;i<=a[0];i++)
32         if (!p[i]){
33             b[++b[0]]=a[i];
34             for (j=i+1;j<=a[0];j++) if (a[j]%a[i]==0) p[j]=true;
35         }
36     for (i=1;i<=b[0]/2;i++) swap(b[i],b[b[0]-i+1]);
37     dfs(1,0,1);
38     printf("%lld",ans);
39     return 0;
40 }

 

转载于:https://www.cnblogs.com/keximeiruguo/p/7784745.html

相关文章:

  • ORA-01950: no privileges on tablespace
  • 计算机硬件组成
  • C[a,b]向量空间中的函数的线性相关性
  • UDP中转服务器
  • 综合应用WPF/WCF/WF/LINQ之七:数据库开发人员的Solution
  • 关于免费空间的寻找
  • centos访问windowsxp共享资源指南.
  • 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 系列目录
  • RAID知识笔记1
  • Exchange Server2010系列之四:初谈邮箱基本管理
  • linux分区管理介绍
  • UNIX/Linux 系统管理技术手册阅读(三)
  • MySQL 5.1.6以上版本动态开启慢查询日志
  • Windows Phone 实用开发技巧(11):让StackPanel中的控件靠右对齐
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【node学习】协程
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Java 最常见的 200+ 面试题:面试必备
  • Spring声明式事务管理之一:五大属性分析
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 排序算法之--选择排序
  • 前端技术周刊 2019-02-11 Serverless
  • 前端知识点整理(待续)
  • 如何设计一个微型分布式架构?
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (6)设计一个TimeMap
  • (C)一些题4
  • (C++17) optional的使用
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (六)Hibernate的二级缓存
  • (算法)前K大的和
  • (小白学Java)Java简介和基本配置
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)大型网站的系统架构
  • (转)德国人的记事本
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET NPOI导出Excel详解
  • .NET 解决重复提交问题
  • .Net 垃圾回收机制原理(二)
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [20171113]修改表结构删除列相关问题4.txt
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [Angular] 笔记 20:NgContent
  • [Bugku]密码???[writeup]