比较直接的数位dp,但不是很好写

注:

1、每一位作为最高位的时候要统计

2、每一位一个周期的个数要统计

3、每一位作为不确定的最高位的个数要统计

4、统计分两部分:当前位和以后位

码:

#include<iostream>
#include<cstdio>
using namespace std;
long long cnt,a,b,ans,daan[11],now,i,lina,linb,jx[22];
long long pow(int a,int b)
{long long ans=1,i;for(i=1;i<=b;i++)ans=ans*a;
return ans;
}
void dfs(int wei,int mb)
{
int o=now/pow(10,wei-1)%10;
if(wei==cnt)
{if(cnt==1){if(o>=mb)ans=1;return;   }ans+=(o-1)*jx[wei-1];if(o>mb&&mb!=0)ans+=pow(10,wei-1);if(o==mb&&mb!=0)ans+=now%(pow(10,wei-1))+1;return;
}
if(wei>1)
{if(mb!=0){ans+=jx[wei-1]*9+pow(10,wei-1); //不算前导0 }else{ans+=jx[wei-1]*9;} jx[wei]=jx[wei-1]*10+pow(10,wei-1);//往前进还是有前导0的
}else  //个位直接算
{
ans++;
jx[wei]=1;
}dfs(wei+1,mb);ans+=o*jx[wei-1];if(o>mb)ans+=pow(10,wei-1);if(o==mb)ans+=now%(pow(10,wei-1))+1;
}
int main()
{scanf("%lld%lld",&a,&b);a--;long long linaa=a,linbb=b;while(linaa){linaa/=10;lina++;}while(linbb){linbb/=10;linb++;}for(i=0;i<=9;i++){now=b;ans=0;cnt=linb;dfs(1,i);daan[i]+=ans;if(a!=0){now=a;ans=0;cnt=lina;dfs(1,i);daan[i]-=ans;
}else if(i==0)daan[i]--;}for(i=0;i<=9;i++){printf("%lld ",daan[i]);}
}

【ZJOI2010】数字计数 数位dp相关推荐

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

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

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

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

  3. 数字游戏——数位dp问题

    数字游戏 数位dp思路: 首先考虑第一个数字能填什么,预处理第一个数字能填的数(除去边界),然后去判断边界,即让循环往下走. 代码 #include <iostream> #include ...

  4. [HAOI2010]计数 数位DP+组合数

    题面: 你有一组非零数字(不一定唯一),你可以在其中插入任意个0,这样就可以产生无限个数.比如说给定{1,2},那么可以生成数字12,21,102,120,201,210,1002,1020,等等. ...

  5. 牛客小白月赛8: E. 诡异数字(数位DP)

    链接:https://www.nowcoder.com/acm/contest/214/E 来源:牛客网 题目描述 有一天clccle在家里玩手机,突然手机上出现了一个诡异的黑影,眼里闪烁着白光,发出 ...

  6. 2017广东工业大学程序设计竞赛决赛:G. 等凹数字(数位DP)

    Problem G: 等凹数字 Description 定义一种数字称为等凹数字,即从高位到地位,每一位的数字先非递增再非递减,不能全部数字一样,且该数是一个回文数,即从左读到右与从右读到左是一样的, ...

  7. BZOJ1833:[ZJOI2010]数字计数——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1833 https://www.luogu.org/problemnew/show/P2602 给定两 ...

  8. [ZJOI2010]数字计数

    一眼数位dp,但...调试了好久.. /*** Problem:Count* Author:Shun Yao* Time:2013.5.31* Result:Accepted* Memo:DP*/#i ...

  9. YBTOJ:魔法数字(数位dp)

    文章目录 题目描述 解析 题目描述 解析 迷惑... 首先,比较容易想到用二进制状态压缩记录1-9是否在十进制中出现过 然后就是整除的问题 如果记录余数,它的模数又有9个 开九维余数直接爆炸... 怎 ...

最新文章

  1. linux history存放位置,Linux中history历史命令使用方法详解
  2. Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
  3. Citrix XenApp 下载及一年 developer license 获取
  4. C++之const修饰得到是谁
  5. 怎么删除计算机c盘应用程序,如何删除C盘的垃圾文件!!
  6. Flask中的session操作
  7. 看穿容器的外表,Linux容器实现原理演示
  8. 开源数据同步神器——canal
  9. HP大中华区总裁退休感言(孙振耀 )
  10. Mac上安装Mysql配置文件的添加及修改配置文件
  11. 华为认证培训的话是远程还会面授好?
  12. 公有云、私有云、私有化_私有云的未来是什么?
  13. android 友盟统计功能,Android应用中添加友盟统计
  14. POJ 1581 A Contesting Decision
  15. php cms下载地址,phpcms将下载地址替换为图片显示
  16. 惠普服务器蓝屏怎么修复,Win10惠普电脑出现蓝屏?解决教程附上
  17. Java字节码角度分析:Synchronized ——提升硬实力11
  18. SoftWare Engineering -- WEEK.3
  19. 《Node.js开发指南》MicroBlog项目的问题汇总
  20. fluid mask 3_CSS3 Fluid Layout和Media Queries:一种响应式Web设计的简单方法

热门文章

  1. java数据类型之间的转换_Java基本类型之间的转换
  2. 基于Matlab的跨孔CT胖射线追踪算法(二)
  3. JAVA调用C语言程序
  4. poj 3414 Pots BFS
  5. jieba分词 ‘float‘ object has no attribute ‘decode‘ 解决方法
  6. ios 重复引用 静态库_iOS项目引用静态库文件.a
  7. sop4封装尺寸图_「光电封装」 有源光器件的结构和封装
  8. python爬虫分布式怎么构造_如何构建一个分布式爬虫:实战篇
  9. mysql olap 函数_Mysql中的窗口函数
  10. shell mysql e_shell脚本操作mysql数据库