http://codeforces.com/group/w1oiqifZbS/contest/1036/problem/C

①先查找,存入vector(dfs)-->排序(sort)-->二分(lower_bound,upper_bound)

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<math.h>
  4. #include<iostream>
  5. #include<stdlib.h>
  6. #include<algorithm>
  7. #include<queue>
  8. #include<vector>
  9. #include<string>
  10. #include<set>
  11. #include<cctype>
  12. #include<sstream>
  13. #define mem(a) memset(a,0,sizeof(a))
  14. #define LL long long
  15. using namespace std;
  16. const int N=1e6+;
  17. vector<LL> ve;
  18. LL n,l,r,m;
  19. void dfs(LL now,int sum,int len)
  20. {
  21. ve.push_back(now);
  22. if(len==)return;
  23. dfs(now*,sum,len+); //十的倍数
  24. if(sum<)
  25. {
  26. for(int i=;i<=;i++)
  27. dfs(now*+i,sum+,len+);//其他,加一---非零
  28. }
  29. }
  30. int main()
  31. {
  32. for(int i=;i<=;i++) //找到符合条件的数
  33. dfs(i,,);
  34. ve.push_back(1e18);//范围,不超过,且1e18符合
  35. sort(ve.begin(),ve.end()); //lo,up要先排序
  36. int t;
  37. scanf("%d",&t);
  38. while(t--)
  39. {
  40. scanf("%I64d%I64d",&l,&r);
  41. /*二分查找*/
  42. int L=lower_bound(ve.begin(),ve.end(),l)-ve.begin();//返回第一个大于等于元素的下标
  43. int R=upper_bound(ve.begin(),ve.end(),r)-ve.begin();//返回第一个大于的元素的下标;
  44. printf("%d\n",R-L); //因为是up-lo,所以不用+1,且两个都是lo的话+1会在lr相等时出错
  45. }
  46. return ;
  47. }

②查到发现还可以用数位DP mark一下

Classy Numbers的更多相关文章

  1. Educational Codeforces Round 50 (Rated for Div. 2) C. Classy Numbers

    C. Classy Numbers 题目链接:https://codeforces.com/contest/1036/problem/C 题意: 给出n个询问,每个询问给出Li,Ri,问在这个闭区间中 ...

  2. CF1036C Classy Numbers dfs+二分

    Classy Numbers time limit per test 3 seconds memory limit per test 256 megabytes input standard inpu ...

  3. Codeforces 1036C Classy Numbers 【DFS】

    <题目链接> 题目大意: 对于那些各个位数上的非0数小于等于3的数,我们称为 classy number ,现在给你一个闭区间 [L,R]  (1≤L≤R≤1018).,问你这个区间内有多 ...

  4. C. Classy Numbers

    链接 [http://codeforces.com/contest/1036/problem/C] 题意 给你l,r,让你找在这个闭区间内位数不为0不超过3的个数,1<=l,r<=1e18 ...

  5. [CF1036C]Classy Numbers

    题目大意:多个询问,每个询问问$[l,r](1\leqslant l\leqslant r\leqslant10^{18})$内有多少个数满足非零数位小于等于$3$. 题解:数位$DP$,$f_{i, ...

  6. 【Codeforces 1036C】Classy Numbers

    [链接] 我是链接,点我呀:) [题意] 让你求出只由3个非0数字组成的数字在[li,ri]这个区间里面有多少个. [题解] 只由3个非0数字组成的数字在1~10^18中只有60W个 dfs处理出来之 ...

  7. CF集萃1

    因为cf上一堆水题,每个单独开一篇博客感觉不太好,就直接放一起好了. CF1096D Easy Problem 给定字符串,每个位置删除要代价.求最小代价使之不含子序列"hard" ...

  8. Educational Codeforces Round 50

    1036A - Function Height    20180907 \(ans=\left \lceil \frac{k}{n} \right \rceil\) #include<bits/ ...

  9. nowcoder(牛客网)提高组模拟赛第一场 解题报告

    T1 中位数(二分) 这个题是一个二分(听说是上周atcoder beginner contest的D题???) 我们可以开一个数组b存a,sort然后二分b进行check(从后往前直接遍历check ...

随机推荐

  1. Apache服务器配置与管理

    一.Apache服务器的目录和文件 1.WEB站点目录 /var/www Apache站点文件的目录 /var/www/html 存放WEB站点的WEB文件 /var/www/cgi-bin CGI程 ...

  2. [BOI2004]Sequence 数字序列(左偏树)

    PS:参考了黄源河的论文<左偏树的特点及其应用> 题目描述:给定一个整数序列\(a_1, a_2, - , a_n\),求一个递增序列\(b_1 < b_2 < - < ...

  3. es上的的Watcher示例

    Watcher插件配置(创建预警任务) watcher目前是沒有界面配置的,需要通过Resfulapi调用创建.管理.更新预警任务 创建一个Watcher任务的流程是怎样的? 我们先来看下创建一个预警 ...

  4. ubuntu16.04连接wifi

    前提:实验室里没有网线,也没有无线网络,只能用个人手机开热点上网! Then~~ 首先参考了这两篇博文: https://blog.csdn.net/weixin_41762173/article/d ...

  5. 为什么要使用50ohm阻抗?

    对于接收机我们期望同轴线的损耗越低越好 对于发射机同轴线的功率效率则是越大越好 所以在二者性能最优时阻抗并不相等 https://www.sohu.com/a/109536765_335274

  6. Prometheus-配置解析

    1.Prometheus整体架构图 2.配置文件 # 全局配置 global: scrape_interval: 15s # 多久 收集 一次数据 evaluation_interval: 30s # ...

  7. js的7种类型

    众所周知,js有7种数据类型 1.  null 2. undefined 3. boolean 4. number 5. string 6. 引用类型(object.array.function) 7 ...

  8. 解读Scrapy框架

    Scrapy框架基础:Twsited Scrapy内部基于事件循环的机制实现爬虫的并发.原来: url_list = ['http://www.baidu.com','http://www.baidu ...

  9. GIT-windows系统部署git服务器

    windows系统部署git服务器 因为需要所以就来利用IIS(Internet Information Service )来进行搭建. 进入正文: 不管你是什么win7.win8.win8.1还是w ...

  10. DQL用户、权限管理(mysql8.0)

    DQL用户.权限管理(mysql8.0) 查看所有的用户: use mysql; -- 使用mysql数据库 select * from user; -- 查询user表中的全部信息,也就是用户 创建 ...