1833

思路:数位dp

代码:

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pii pair<int, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout);
//head

LL dp[20][20][2];
int a[20], cnt;
LL dfs(int x, int pos, int res, bool zero, bool limit) {if(pos == -1) return res;if(!limit && ~dp[pos][res][zero]) return dp[pos][res][zero];int up = 9;if(limit) up = a[pos];LL ans = 0;for (int i = 0; i <= up; i++) {if(zero) {if(i == 0 && x == 0) ans += dfs(x, pos-1, res, zero&&i==0, limit&&i==up);else if(i == x) ans += dfs(x, pos-1, res+1, zero&&i==0, limit&&i==up);else ans += dfs(x, pos-1, res, zero&&i==0, limit&&i==up);}else {if(i == x) ans += dfs(x, pos-1, res+1, zero&&i==0, limit&&i==up);else ans += dfs(x, pos-1, res, zero&&i==0, limit&&i==up);}}if(!limit) dp[pos][res][zero] = ans;return ans;}
LL solve(LL n, int x) {if(n == 0) return 0;cnt = 0;while(n) {a[cnt++] = n%10;n /= 10;}mem(dp, -1);return dfs(x, cnt-1, 0, 1, 1);
}
int main() {LL a, b;scanf("%lld %lld", &a, &b);for (int i = 0; i <= 9; i++) {printf("%lld%c", solve(b, i) - solve(a-1, i), " \n"[i==9]);}return 0;
}

转载于:https://www.cnblogs.com/widsom/p/9293213.html

BZOJ 1833: [ZJOI2010]count 数字计数相关推荐

  1. bzoj 1833: [ZJOI2010]count 数字计数(数字0-9的个数)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 3528  Solved: 1553 [Submit ...

  2. BZOJ 1833 ZJOI2010 count 数字计数 数位DP

    题目大意:求[a,b]间全部的整数中0~9每一个数字出现了几次 令f[i]为i位数(算前导零)中每一个数出现的次数(一定是同样的,所以仅仅记录一个即可了) 有f[i]=f[i-1]*10+10^(i- ...

  3. 1833: [ZJOI2010]count 数字计数

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2951  Solved: 1307 [Submit ...

  4. 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2774  Solved: 1230 [Submit ...

  5. bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)

    1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...

  6. [BZOJ1833][ZJOI2010]Count数字计数(DP)

    数位DP学傻了,怎么写最后都写不下去了. 这题严格上来说应该不属于数位DP?只是普通DP加上一些统计上的判断吧. 首先复杂度只与数的位数$\omega$有关,所以怎么挥霍都不会超. f[i][j][k ...

  7. bzoj1833: [ZJOI2010]count 数字计数USACO37 Cow Queueing 数数的梦(数位DP)

    难受啊,怎么又遇到我不会的题了(捂脸) 如题,这是一道数位DP,随便找了个博客居然就是我们大YZ的--果然nb,然后就是改改模版++注释就好的了,直接看注释吧,就是用1~B - 1~A-1而已,枚举全 ...

  8. bzoj1833: [ZJOI2010]count 数字计数 codevs1359 数字计数

    bzoj1833 codevs1359 这道题也是道数位dp 因为0有前导0这一说卡了很久 最后发现用所有位数减1~9的位数就okay.....orzczl大爷 其他就跟51nod那道统计1出现次数一 ...

  9. count 数字计数(bzoj 1833)

    Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文 ...

最新文章

  1. Spring MVC 概述
  2. POJ 3046 Ant Counting
  3. [css] 解释下css3的flexbox(弹性盒布局模型),以及它应用场景有哪些?
  4. 去掉窗口_Flink 基础——窗口(Window)理论篇
  5. IntelliJ IDEA 内存优化最佳实践
  6. Codeforces 932D - Tree
  7. 机器学习算法 --- SVM (Support Vector Machine)
  8. 新版FMEA软件:特殊特性自动分类 免费申请试用(FMEAHunter)
  9. Vivado 2019.1下载与安装
  10. 黑群晖一键生成视频缩略图
  11. 颜色对照表(四)(16进制、RGB、CMYK、HSV、中英文名)
  12. mysql中key的用法_数据库中KEY的用法
  13. Java工程师进阶,Java全栈知识体系
  14. JDBC--DAOUtil封装
  15. Bugku杂项——旋转跳跃
  16. Java实现九宫格游戏
  17. rebuild node-sass npm install
  18. 找素数模板:马氏筛法【复杂度nlgnlgn】
  19. linux运行blast,linux blast
  20. 装完黑苹果怎么装windows_黑苹果安装教程,小编教你黑苹果怎么安装

热门文章

  1. 既然Tengine比Nginx更强大,为什么Tengine没有取代Nginx呢?
  2. 那个抗血栓机器人_美国DJO抗血栓压力袜
  3. elasticsearch java 分页查询_elasticsearch深度分页问题
  4. go语言开发环境搭建_GO语言开发环境搭建
  5. mschart走势图 vc_[VC] 解决MSChart闪烁的问题
  6. unity 下一帧执行_Unity中的Havok Physics物理引擎
  7. python x轴加范围_Python,Matplotlib,subplot:如何设置轴范围?
  8. python编程思维代码_Python编程快速上手——强口令检测算法案例分析
  9. R语言生信作图代码集合大全
  10. lisp语言代替python_Lisp 语言优点那么多,为什么国内很少运用?