http://www.lydsy.com/JudgeOnline/problem.php?id=1833

2.5个小时就花在这上面了。。。

水到200题了。。。然并卵,天天做水题有什么前途。。。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll A, B;
ll dp[][][], a[], ret[], ans[], bin[];
void solve(ll n, int f)
{
int len = ; ll t = n; memset(a, , sizeof(a)); memset(ret, , sizeof(ret));
while(n) a[++len] = n % , n /= ;
for(int i = ; i < len; ++i)
for(int j = ; j <= ; ++j)
for(int k = ; k <= ; ++k) ret[k] += dp[i][j][k];
// for(int i = 1; i < a[len]; ++i)
// for(int j = 0; j <= 9; ++j) ret[j] += dp[len][i][j];
for(int i = len; i; --i)
{
for(int j = ; j < a[i]; ++j)
{
if(!j && i == len) continue;
for(int k = ; k <= ; ++k) ret[k] += dp[i][j][k];
}
ret[a[i]] += t % bin[i] + ;
}
for(int i = ; i <= ; ++i) ans[i] += f * ret[i];
}
int main()
{
// freopen("countzj.in", "r", stdin);
// freopen("countzj.out", "w", stdout);
bin[] = 1ll; for(int i = ; i <= ; ++i) bin[i] = bin[i - ] * 10ll;
for(int i = ; i <= ; ++i) dp[][i][i] = ;
for(int i = ; i <= ; ++i)
for(int j = ; j <= ; ++j)
for(int k = ; k <= ; ++k)
for(int l = ; l <= ; ++l) dp[i][j][l] += dp[i - ][k][l] + (ll)(j == l) * bin[i - ];
scanf("%lld%lld", &A, &B);
solve(B, ); solve(A - , -);
for(int i = ; i <= ; ++i) printf("%lld ", ans[i]);
printf("%lld\n", ans[]);
// fclose(stdin); fclose(stdout);
return ;
}

bzoj1833的更多相关文章

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

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

  2. 数位DP入门:(bzoj1833+3209)

    //我是来看文章创建时间的= = 膜拜了一下蔡大神.... 人生第一道自己写的数位DP...好吧以前是看题解然后也不知道为什么就过了的>_< 虽然说现在还是只会裸题= = 数位DP介绍: ...

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

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

  4. 【bzoj1833】 ZJOI2010—count 数字计数

    http://www.lydsy.com/JudgeOnline/problem.php?id=1833 (题目链接) 题意 求在${[a,b]}$范围内整数中,每个数码出现的次数. Solution ...

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

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

  6. bzoj1833: [ZJOI2010]count 数字计数 && codevs1359 数字计数

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

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

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

  8. LG2602/BZOJ1833 「ZJOI2010」数字计数 数位DP

    问题描述 LG2602 BZOJ1833 题解 数位\(\mathrm{DP}\)板子题. 注意限制位数.前导零. \([a,b]=[1,b]-[1,a-1]\) \(\mathrm{Code}\) ...

  9. 【BZOJ-1833】count数字计数 数位DP

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 2494  Solved: 1101[Submit][ ...

  10. bzoj1833 digit

    这道题其实挺水,只是写的时候需要想清楚.我的方法是: 1.将[a,b]转化为[0,b+1)-[0,a) 2.预处理出非0的v在区间[0,10^p)出现次数以及0在区间[0,10^p)出现数 3.将一个 ...

随机推荐

  1. lombok无法解析log

    首先确认开发工具是否安装lombok,已安装的话打开lombok插件页,选择update, 然后重启idea.

  2. post请求重定向到get请求问题

    springMVC默认重定向是get请求,我在方法注解中没有指定method是post还是get请求,这样就可以接收到post重定向来的请求,也可以接收到页面传来的get请求,如果要传参,可以使用mo ...

  3. 浅析Oracle中的不等于号

    前几天碰到一个关于Oracle不等于的问题,最后搜索了一下,发现下面资料,拿来跟大家分享一下,需要的朋友可以参考下     关于Oracle中的不等于号: 在Oracle中, <> != ...

  4. spring 中属性scope 的prototype(有状态)和singleton(无状态)

    默认情况下,从bean工厂所取得的实例为Singleton(bean的singleton属性) Singleton: Spring容器只存在一个共享的bean实例, 默认的配置. Prototype: ...

  5. 第3章 从Flux到Redux

    第3章 从Flux到Redux 3.1 Flux 单向数据流,React是用来替换Jquery的,Flux是以替换Backbone.js.Ember.js等MVC框架为主的. actionTypes. ...

  6. MySQL4

    MySQL数据库4 1 管理索引 创建索引帮助 help CREATE INDEX 创建索引 指令 CREATE INDEX 语法格式 CREATE INDEX index_name ON tbl_n ...

  7. js之条件判断

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. nginx4win10 文件下载服务器

    默认root是Nginx下目录html. 我们在其目录下新建download目录,然后在该目录下copy几个供下载的文件. 在浏览器输入http://localhost:9001/download/y ...

  9. hdu 2014 位运算

    /* 注意两点 1.从后往前找互补的,刚开始我找的是相邻的但是这个例子就不行101 110 2.因为时累加所以sum可能会超出int范围,这个很重要. */ #include<stdio.h&g ...

  10. codevs1314 寻宝

    题目描述 Description 传说很遥远的藏宝楼顶层藏着诱人的宝藏.小明历尽千辛万苦终于找到传说中的这个藏宝楼,藏宝楼的门口竖着一个木板,上面写有几个大字:寻宝说明书.说明书的内容如下: 藏宝楼共 ...