1. /*
  2. 注意的事项:是输出小于 10^n的正整数的个数哦!开始的时候总比样例输出多一个数,
  3. 纠结了好久,原来是 0加了进去了!
  4.  
  5. dpI[n][m]表示的是第n位添加数字m(0....9)的构成单调递增数个数
  6. dpD[n][m]表示的是第n位添加数字m(0....9)的构成单调递减数个数
  7. */
  8. #include<iostream>
  9. #include<cstring>
  10. #include<cstdio>
  11. #include<algorithm>
  12. using namespace std;
  13.  
  14. long long dpI[][];
  15. long long dpD[][];
  16.  
  17. void init(){
  18. for(int i=; i<; ++i)
  19. dpI[][i]=dpD[][i]=;
  20. for(int i=; i<=; ++i){
  21. for(int j=; j<; ++j){
  22. if(j!=){//单调递增的数一定没有数字0,因为前边的数字最小为 1
  23. for(int k=j; k>=; --k)
  24. dpI[i][j]+=dpI[i-][k];
  25. }
  26.  
  27. for(int k=j; k<; ++k){//单调递减的数字中可以有0,但是第二位为0时,第一位不能为0
  28. if(i== && k==) continue;
  29. dpD[i][j]+=dpD[i-][k];
  30. }
  31. }
  32. }
  33. }
  34.  
  35. int main(){
  36. init();
  37. int n;
  38. while(cin>>n){
  39. long long sum=;
  40. for(int j=; j<=n; ++j){
  41. for(int i=; i<; ++i)
  42. sum+=dpI[j][i]+dpD[j][i];
  43. sum-=;
  44. }
  45. cout<<sum<<endl;
  46. }
  47. return ;
  48. }

ZZUOJ1196: 单调数的更多相关文章

  1. hihoCoder #1770 : 单调数(数位dp)

    题面 我们定义一个数是单调数,当且仅当构成这个数每一个数位都是单调不降或不增的. 例如 \(123\) 和 \(321\) 和 \(221\) 和 \(111\) 是单调的,而 \(312\) 不是单 ...

  2. UVa 1451 (数形结合 单调栈) Average

    题意: 给出一个01串,选一个长度至少为L的连续子串,使得串中数字的平均值最大. 分析: 能把这道题想到用数形结合,用斜率表示平均值,我觉得这个想法太“天马行空”了 首先预处理子串的前缀和sum,如果 ...

  3. 算法竞赛进阶指南--在单调递增序列a中查找小于等于x的数中最大的一个(即x或x的前驱)

    在单调递增序列a中查找<=x的数中最大的一个(即x或x的前驱) while (l < r) { int mid = (l + r + 1) / 2; if (a[mid] <= x) ...

  4. 单调栈应用--将一个数删除n各数字之后的最大\最小值

    E. Playing with numbers time limit per test 2.0 s memory limit per test 64 MB input standard input o ...

  5. [USACO2003][poj2018]Best Cow Fences(数形结合+单调队列维护)

    http://poj.org/problem?id=2018 此乃神题……详见04年集训队论文周源的,看了这个对斜率优化dp的理解也会好些. 分析: 我们要求的是{S[j]-s[i-1]}/{j-(i ...

  6. 算法竞赛进阶指南--在单调递增序列a中查找>=x的数中最小的一个(即x或x的后继)

    while (l < r) { int mid = (l + r) / 2; if (a[mid] >= x) r = mid; else l = mid + 1; }

  7. BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 8748  Solved: 3835[Submi ...

  8. 卡特兰数(Catalan)

    卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名,其前几项为 : 1, 2, ...

  9. 单调队列 && 斜率优化dp 专题

    首先得讲一下单调队列,顾名思义,单调队列就是队列中的每个元素具有单调性,如果是单调递增队列,那么每个元素都是单调递增的,反正,亦然. 那么如何对单调队列进行操作呢? 是这样的:对于单调队列而言,队首和 ...

随机推荐

  1. 神经网络hopfield的学习

    Hopfield神经网络使用说明. 该神经网络有两个特点: 1,输出值只有0,1 2,Hopfield没有输入(input) 这里解释一下第二个特点,什么叫没有输入?因为在使用Hopfield网络的时 ...

  2. 基于Moodle的IT课程辅助教育平台搭建

    基于Moodle的IT课程辅助教育平台搭建 Moodle是一个开源课程管理系统(CMS),也被称为学习管理系统(LMS)或虚拟学习环境(VLE).它已成为深受世界各地教育工作者喜爱的一种为学生建立网上 ...

  3. bower 问题

    没法写成bower install jquery bootstrap:只能是bower install jquery; bower install bootstrap

  4. java中String的一些方法

    1.public String(char[] c,begin,length). 从字符数组c的下标begin处开始,将长度为length的字符数组转换为字符串. begin与length可以省略,即将 ...

  5. CentOS7使用阿里云镜像安装Mongodb

    一.概述 近日要在新的CentOS系统上安装MongoDB,某度结果后直接从Mongo官网直接获得3.2版本的下载链接,结果在下载时发觉速度慢的可怜.迫于无奈,只能找国内的镜像下载.切换国内的安装源后 ...

  6. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (3):部署設定及應用 (转帖)

    說明:這一篇主要是說明如何將程式部署到Application Server,以及程式如何運作,產生的檔案置於何處,以及如何以瀏覽器呈現(Applet),或是當成桌面應用程式,或是 桌面Applet,這 ...

  7. .Net Core CLI在CentOS7的安装及使用简介

    1. 安装libunwind cd /usr/local/src wget http://download.savannah.gnu.org/releases/libunwind/libunwind- ...

  8. MongoDB索引的使用

    Table of Contents 1. 基本索引 2. 联合索引 3. 索引类型 4. 索引管理 1 基本索引 在数据库开发中索引是非常重要的,对于检索速度,执行效率有很大的影响.本 文主要描述了M ...

  9. DeviceOne 让你一见钟情的App快速开发平台

    接触 DeviceOne 要从15年11月开始说起了,因项目和产品时间需求接触了快速开发平台,DeviceOne是非常棒的一个平台,双向数据绑定,可以自定义指令,过滤器等等.总之非常好用完全超出了我们 ...

  10. 赴美工作常识(Part 5 - 绿卡优先级)

    这个系列的第一篇<赴美工作常识(Part 1 - 签证)>是三年前写的,过了这么久这个系列终于要继续下去了.接下来当然时讨论绿卡的事情了.跟讨论签证一样,这里必须要有免责声名.因为我不是移 ...