bzoj 1833
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的更多相关文章
- [BZOJ 1833] [ZJOI2010] count 数字计数 【数位DP】
题目链接:BZOJ - 1833 题目分析 数位DP .. 用 f[i][j][k] 表示第 i 位是 j 的 i 位数共有多少个数码 k . 然后差分询问...Get()中注意一下,如果固定了第 i ...
- [BZOJ 1833] 数字计数
Link: BZOJ 1833 传送门 Solution: 比较明显的数位DP 先预处理出1~9和包括前导0的0的个数:$pre[i]=pre[i-1]*10+10^{digit-1}$ (可以分为首 ...
- BZOJ 1833: [ZJOI2010]count 数字计数
Description 问 \([L,R]\) 中0-9的个数. Sol 数位DP. 预处理好长度为 \(i\), 最高位为 \(j\) 的数位之和. 然后从上往下计算,不要忘记往下走的同时要把高位的 ...
- bzoj 1833 [ZJOI2010]count 数字计数(数位DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1833 [题意] 统计[a,b]区间内各数位出现的次数. [思路] 设f[i][j][k ...
- BZOJ 1833: [ZJOI2010]count 数字计数( dp )
dp(i, j, k)表示共i位, 最高位是j, 数字k出现次数. 预处理出来. 差分答案, 对于0~x的答案, 从低位到高位进行讨论 -------------------------------- ...
- BZOJ 1833 count 数字计数
sb数位dp. #include<iostream> #include<cstdio> #include<cstring> #include<algorith ...
- BZOJ 1833 ZJOI2010 count 数字计数 数位DP
题目大意:求[a,b]间全部的整数中0~9每一个数字出现了几次 令f[i]为i位数(算前导零)中每一个数出现的次数(一定是同样的,所以仅仅记录一个即可了) 有f[i]=f[i-1]*10+10^(i- ...
- count 数字计数(bzoj 1833)
Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文 ...
- BZOJ 1833 数字计数 数位DP
题目链接 做的第一道数位DP题,听说是最基础的模板题,但还是花了好长时间才写出来..... 想深入了解下数位DP的请点这里 先设dp数组dp[i][j][k]表示数位是i,以j开头的数k出现的次数 有 ...
随机推荐
- jQuery()方法的第二个参数详解
关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 con ...
- 好久没写了,SQLSERVER服务丢失后怎么办
服务器突然中了病毒,查杀后,结果两个服务也丢了, 从其他机器上COPY了两个EXE过来,编写这两个服务就搞定了,不用重装MSSQL2005了 sc create MSSQLSERVER binpath ...
- KEA128单片机启动代码分析
;/*****************************************************************************; * @file: startup_SK ...
- OGG生成数据定义文件的参数NOEXTATTR
./defgen paramfile ./dirprm/jzjj.prm NOEXTATTR In OGG 11.2, there is a new parameter NOEXTATTR. This ...
- xss自动化攻击
所需工具 [1.xssValidator] [2.phantomjs] [3.xss.js] /** * This is a basic phantomJS script that will be u ...
- Centos查看端口占用和关闭端口
Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令: lsof -i tcp:80 列出所有端口 netstat -ntlp 1.开启端口(以80端口为例) ...
- HDU 5348 MZL's endless loop(DFS去奇数度点+欧拉回路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5348 题目大意:给你一张图,有n个点,和m条无向边,让你把m条无向边变成有向边,使得每个节点的|出度- ...
- JAVA封装消息中间件调用一(kafka生产者篇)
这段时间因为工作关系一直在忙于消息中间件的发开,现在趁着项目收尾阶段分享下对kafka的一些使用心得. kafka的原理我这里就不做介绍了,可参考http://orchome.com/kafka/in ...
- 洛谷 P2369 EXCEEDED WARNING A 题解
题目传送门 直接用sort排序最后输出即可.但是数组要使用short int 类型.否则会超内存. #include<bits/stdc++.h> using namespace std; ...
- git rebase 过程中遇到冲突该怎么解决?
在执行git rebase 过程中经常遇到问题,此时有点慌,一般如何解决呢? 1.先将本地的冲突手动解决 2.执行下面命令 git add . git rebase --contine //继续re ...