bzoj1833

codevs1359

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

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
using namespace std;
LL read(){
LL ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
LL f[][][],w[],cur=,ans1[],ans2[];
void prepare(){
w[]=; for(int i=;i<=;i++) w[i]=w[i-]*;
for(int i=;i<=;i++) f[][i][i]=;
for(int i=;i<=;i++)
for(int j=;j<=;j++)
for(int k=;k<=;k++){
for(int z=;z<=;z++)
f[i][j][k]+=f[i-][z][k];
if(j==k) f[i][j][k]+=w[i];
}
}
void work1(LL n){
int cur=;
if(!n){ans1[]=; return ;}
while(w[cur]>n) cur--;
LL tot=;
for(int i=;i<cur;i++) tot+=(w[i+]-w[i])*i;
tot+=(n-w[cur]+)*cur;
LL v=n/w[cur];
for(int i=;i<=;i++)
for(int j=;j<v;j++)
ans1[i]+=f[cur][j][i];
ans1[v]=ans1[v]+n%w[cur]+;
n=n%w[cur];
for(int i=cur-;i;i--){
v=n/w[i];
for(int j=;j<=;j++)
for(int k=;k<v;k++) ans1[j]+=f[i][k][j];
ans1[v]=ans1[v]+n%w[i]+;
n=n%w[i];
}
//printf("%lld %lld\n",tot,ans1[0]);
for(int i=;i<=;i++) tot-=ans1[i]; ans1[]=tot;
}
void work2(LL n){
int cur=;
if(!n){ans2[]=; return ;}
while(w[cur]>n) cur--;
LL tot=;
for(int i=;i<cur;i++) tot+=(w[i+]-w[i])*i;
tot+=(n-w[cur]+)*cur;
LL v=n/w[cur];
for(int i=;i<=;i++)
for(int j=;j<v;j++)
ans2[i]+=f[cur][j][i];
ans2[v]=ans2[v]+n%w[cur]+;
n=n%w[cur];
for(int i=cur-;i;i--){
v=n/w[i];
for(int j=;j<=;j++)
for(int k=;k<v;k++) ans2[j]+=f[i][k][j];
if(v) ans2[v]=ans2[v]+n%w[i]+;
n=n%w[i];
}
//printf("%lld %lld\n",tot,ans2[0]);
for(int i=;i<=;i++) tot-=ans2[i]; ans2[]=tot;
}
int main()
{
prepare();
work1(read()-); work2(read());
for(int i=;i<=;i++){
printf("%lld",ans2[i]-ans1[i]);
if(i!=) printf(" ");
}
return ;
}

bzoj1833: [ZJOI2010]count 数字计数 && codevs1359 数字计数的更多相关文章

  1. [BZOJ1833][ZJOI2010]count 数字计数

    [BZOJ1833][ZJOI2010]count 数字计数 试题描述 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入 输入文件中仅包含一行两个整数a ...

  2. BZOJ1833 ZJOI2010 count 数字计数 【数位DP】

    BZOJ1833 ZJOI2010 count 数字计数 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包 ...

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

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

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

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

  5. [bzoj1833][ZJOI2010]count 数字计数——数位dp

    题目: (传送门)[http://www.lydsy.com/JudgeOnline/problem.php?id=1833] 题解: 第一次接触数位dp,真的是恶心. 首先翻阅了很多很多一维dp,因 ...

  6. BZOJ1833 [ZJOI2010]count 数字计数 【数学 Or 数位dp】

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

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

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

  8. bzoj1833: [ZJOI2010]count 数字计数 数位dp

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

  9. 【数位dp】bzoj1833: [ZJOI2010]count 数字计数

    数位dp姿势一直很差啊:顺便庆祝一下1A Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a ...

随机推荐

  1. 涉及到大小变化,类似QScrollArea判断大小是否显示滚动条

    涉及到大小变化,类似QScrollArea判断大小是否显示滚动条的情况要注意 这两个属性的设置:

  2. (原)一段看似美丽的for循环,背后又隐藏着什么

    之前很长一段时间,潜心修炼汇编,专门装了一个dos7,慢慢玩到win32汇编,再到linux的AT&A汇编,尝试写mbr的时候期间好几次把centos弄的开不了机,又莫名其妙的修好了,如今最大 ...

  3. mysql 查询当月天数

    SELECT day(LAST_DAY('2018-02-01')) 思路: 先通过LAST_DAY() 查找当月最后一天,然后通过day()返回天数.

  4. Struts2(二.用户登录模块)

    1.编写Javabean /src/myuser/User.java 在strut1中,Javabean需要继承于struts1 api中的ActionForm类.struts2没有此要求 strut ...

  5. 十分钟掌握pandas中文版(pandas官方文档翻译)

    转载自 https://blog.csdn.net/jiangjiang_jian/article/details/80022918

  6. xshell连接不到虚拟机,安装ssh服务

    刚安装的虚拟机镜像是Ubuntu 16.04版本,防火墙已经关闭. 测试: 检查虚拟机分配的ip地址. 1.虚拟机ping宿主机:可以ping通 2.宿主机ping虚拟机:可以ping通 3.检查网络 ...

  7. [转载] python 解析xml 文件: SAX方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  8. hibernate延时加载机制

    延迟加载: 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作.在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另 ...

  9. Android Studio 添加模块依赖

    原文地址: http://fanjiajia.cn/2018/09/27/Android%20Studio%20%E6%B7%BB%E5%8A%A0%E6%A8%A1%E5%9D%97%E4%BE%9 ...

  10. Struts2监听Action结果的监听器

    作者:禅楼望月 在前面我们学到了在特定的Action中配置结果监听器,在Action完成控制处理之后,struts2转入实际的物理视图之前被回调.但是这种方式的缺点是,结果的监听器不能被复用.根据设计 ...