f[pos][top]

统计数字个数

g[pos][top][digit]

统计数位(对于f[pos][top]中的所有数)

 /**************************************************************
Problem: 1833
User: idy002
Language: C++
Result: Accepted
Time:0 ms
Memory:808 kb
****************************************************************/ #include <cstdio>
#include <cstring> typedef long long poi; poi lf, rg;
int aa[], tot;
poi f[][], g[][][];
poi ans[][]; void calc( poi v, poi ans[] ) {
for( tot=; v; v/= )
aa[++tot] = v%;
memset( f, , sizeof(f) );
memset( g, , sizeof(g) );
f[tot][] = ;
f[tot][] = aa[tot]-;
for( int i=tot; i>=; i-- ) {
f[i-][] = ;
f[i-][] = f[i][]*++f[i][]*aa[i-];
}
g[tot][][aa[tot]] = ;
for( int i=; i<aa[tot]; i++ )
g[tot][][i] = ;
for( int i=tot; i>=; i-- ) {
// for( int s=0; s<=9; s++ )
// g[i-1][0][s] = g[i][0][s]*10+f[i][0]+(s!=0);
for( int s=; s<=; s++ ) {
g[i-][][s] += f[i][];
for( int ss=; ss<=; ss++ ) {
g[i-][][ss] += g[i][][ss];
}
}
for( int s=; s<=; s++ )
g[i-][][s]++;
for( int s=; s<aa[i-]; s++ ) {
g[i-][][s] += f[i][];
for( int ss=; ss<=; ss++ ) {
g[i-][][ss] += g[i][][ss];
}
}
for( int s=; s<=; s++ )
g[i-][][s] = g[i][][s]+(aa[i-]==s);
} for( int i=; i<=; i++ )
ans[i] = g[][][i]+g[][][i];
} int main() {
scanf( "%lld%lld", &lf, &rg );
calc(rg,ans[]);
if( lf> ) calc(lf-,ans[]);
for( int i=; i<=; i++ )
printf( "%lld%s", ans[][i]-ans[][i], i== ? "" : " " );
}

bzoj 1833的更多相关文章

  1. [BZOJ 1833] [ZJOI2010] count 数字计数 【数位DP】

    题目链接:BZOJ - 1833 题目分析 数位DP .. 用 f[i][j][k] 表示第 i 位是 j 的 i 位数共有多少个数码 k . 然后差分询问...Get()中注意一下,如果固定了第 i ...

  2. [BZOJ 1833] 数字计数

    Link: BZOJ 1833 传送门 Solution: 比较明显的数位DP 先预处理出1~9和包括前导0的0的个数:$pre[i]=pre[i-1]*10+10^{digit-1}$ (可以分为首 ...

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

    Description 问 \([L,R]\) 中0-9的个数. Sol 数位DP. 预处理好长度为 \(i\), 最高位为 \(j\) 的数位之和. 然后从上往下计算,不要忘记往下走的同时要把高位的 ...

  4. bzoj 1833 [ZJOI2010]count 数字计数(数位DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1833 [题意] 统计[a,b]区间内各数位出现的次数. [思路] 设f[i][j][k ...

  5. BZOJ 1833: [ZJOI2010]count 数字计数( dp )

    dp(i, j, k)表示共i位, 最高位是j, 数字k出现次数. 预处理出来. 差分答案, 对于0~x的答案, 从低位到高位进行讨论 -------------------------------- ...

  6. BZOJ 1833 count 数字计数

    sb数位dp. #include<iostream> #include<cstdio> #include<cstring> #include<algorith ...

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

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

  8. count 数字计数(bzoj 1833)

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

  9. BZOJ 1833 数字计数 数位DP

    题目链接 做的第一道数位DP题,听说是最基础的模板题,但还是花了好长时间才写出来..... 想深入了解下数位DP的请点这里 先设dp数组dp[i][j][k]表示数位是i,以j开头的数k出现的次数 有 ...

随机推荐

  1. css_input[checked]复选框去掉默认样式并添加新样式

    效果对比: “\2713”实体符号√ :如有兴趣查看详细实体符号请点这里 代码实现: <!DOCTYPE html> <html> <head> <meta ...

  2. 15 - reduce-pratial偏函数-lsu_cache

    目录 介绍 1 reduce方法 2 partial方法(偏函数) 2.1 partial方法基本使用 2.2 partial原码分析 2.3 functools.warps实现分析 3 lsu_ca ...

  3. xv6/bootasm.S + xv6/bootmain.c

    xv6/bootasm.S #include "asm.h" #include "memlayout.h" #include "mmu.h" ...

  4. Linux系统调用、新增系统调用方法【转】

    转自:http://blog.chinaunix.net/uid-25374603-id-3401045.html 说明: 系统调用是内核和应用程序间的接口,应用程序要访问硬件设备和其他操作系统资源, ...

  5. Android 开发笔记(一) 按钮事件调用Activity

    UI创建按钮及事件 Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);mEmailSignInB ...

  6. HTML+CSS图文排版

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  7. Remove Duplicates from Sorted Array I&&II——怎样防超时

    Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...

  8. 读书笔记|Windows 调试原理学习|持续更新

    关于调试方面的学习笔记,主要来源于<软件调试>的读书笔记和梦织未来论坛的视频教程 1.调试器使用一个死循环监听调试信息. DebugActiveProcess(PID);while(TRU ...

  9. Mybatis的关联映射

    实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系.针对多表之间的操作,MyBatis提供了关联映射, 通过关联映射就可以很好的处理对象与对象之间的关联关 ...

  10. django rest_framework中将json输出字符强制为utf-8编码

    最近在和日本外包合作开发JIRA对接发布系统的版本单时, 遇到这个问题. 就是我们这边的输出浏览器显示为中文,而到了JIRA端就出现乱码. 查了文档,原来django rest_framework的默 ...