bzoj1833数字计数
找$[1$ ~ $a-1]$和$[1$ ~ $b]$中各数码出现的次数之后相减就是答案
上代码:
/**************************************************************
Problem: 1833
User: zhangheran
Language: C++
Result: Accepted
Time:0 ms
Memory:1292 kb
****************************************************************/ #include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long a,b;
long long f[];
long long dp[];
long long ansa[];
long long ansb[];
long long tot;
long long qwq[];
long long qaq[];
int lena,lenb;
int main()
{
// freopen("1.in","r",stdin);
// freopen("1.out","w",stdout);
scanf("%lld%lld",&a,&b);
dp[]=;
for(int i=;i<=;i++)
f[i]=f[i-]*+dp[i-],
dp[i]=dp[i-]*;
a--;
while(a) qwq[++lena]=a%,a/=;
while(b) qaq[++lenb]=b%,b/=; for(int i=lena;i>=;i--){
long long now=;
for(int j=;j<=;j++) ansa[j]+=qwq[i]*f[i-];
for(int j=;j<qwq[i];j++) ansa[j]+=dp[i-];
for(int j=i-;j>;j--) now*=,now+=qwq[j];
ansa[qwq[i]]+=now+;
ansa[]-=dp[i-];
// printf("%lld %lld\n",qwq[i],ansa[qwq[i]]);
}
// puts("");
for(int i=lenb;i>=;i--){
// printf("%lld ",qaq[i]);
long long now=;
for(int j=;j<=;j++) ansb[j]+=qaq[i]*f[i-];
for(int j=;j<qaq[i];j++) ansb[j]+=dp[i-];
for(int j=i-;j>;j--) now*=,now+=qaq[j];
ansb[qaq[i]]+=now+;
ansb[]-=dp[i-];
// printf("%lld %lld\n",qaq[i],ansb[qaq[i]]);
}
// puts("");
for(int i=;i<=;i++) printf("%lld ",ansb[i]-ansa[i]);
}
//655 1044
bzoj1833数字计数的更多相关文章
- bzoj1833 数字计数
Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文 ...
- [BZOJ1833][ZJOI2010]count 数字计数
[BZOJ1833][ZJOI2010]count 数字计数 试题描述 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入 输入文件中仅包含一行两个整数a ...
- BZOJ1833 ZJOI2010 count 数字计数 【数位DP】
BZOJ1833 ZJOI2010 count 数字计数 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包 ...
- 【BZOJ-1833】count数字计数 数位DP
1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 2494 Solved: 1101[Submit][ ...
- bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)
1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...
- BZOJ_1833_[ZJOI2010]_数字计数_(数位dp)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1833 统计\(a~b\)中数字\(0,1,2,...,9\)分别出现了多少次. 分析 数位dp ...
- BZOJ 1833: [ZJOI2010]count 数字计数( dp )
dp(i, j, k)表示共i位, 最高位是j, 数字k出现次数. 预处理出来. 差分答案, 对于0~x的答案, 从低位到高位进行讨论 -------------------------------- ...
- 1833: [ZJOI2010]count 数字计数
1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 2951 Solved: 1307[Submit][ ...
- BZOJ_1833_[ZJOI2010]count 数字计数_数位DP
BZOJ_1833_[ZJOI2010]count 数字计数_数位DP 题意: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 分析: 数位DP f[i][ ...
随机推荐
- linux进阶与hadoop
Linux进阶命令: find . | ls --help | more grep ll | grep 1.txt grep -ri BASH 1.txt grep -ri BASH ...
- Linux实战教学笔记33:lvs+keepalived集群架构服务
一,LVS功能详解 1.1 LVS(Linux Virtual Server)介绍 LVS是Linux Virtual Server 的简写(也叫做IPVS),意即Linux虚拟服务器,是一个虚拟的服 ...
- JAVA heap space 内存溢出
3月28日开始使用JAVA调用SAP RFC后提示内存溢出 尝试增加set java_OPTS.....但仍然提示内存溢出 最终设置方法
- Python基础:字符串的常见操作
# 切片 # 切片 获取对象中一部分数据 [起始位置:结束位置(不包含):步长] qpstr = "山东张学友" result = qpstr[1: 3: 1] # 东张 prin ...
- 微信图片反防盗链 用js不太成熟的解决方式 仅供参考
$("#imgDiv img").each(function () { var img = $(this); var img_src = img.attr("src&qu ...
- Unity3D UI史
http://www.cnblogs.com/hammerc/p/4837204.html 扫码时备注或说明中留下邮箱付款后如未回复请至https://shop135452397.taobao.com ...
- 配置jdk和tomcat的环境变量
一.1,新建变量名:JAVA_HOME,变量值:d:\Program Files\Java\jdk1.7.0 2,打开PATH,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jr ...
- 利用django中间件CsrfViewMiddleware防止csrf攻击
一.在django后台处理 1.将django的setting中的加入django.contrib.messages.middleware.MessageMiddleware,一般新建的django项 ...
- C# 四舍五入的理解
Math.Round(45.367,2) //Returns 45.37 Math.Round(45.365,2) //Returns 45.36 C#中的Round()不是我 ...
- java IO类简单介绍
一.流的概念 流是字节序列的抽象概念.流和文件的差别:文件是数据的静态存储形式,而流是指数据传输时的形态.文件只是流的操作对象之一.流按其操作的对象不同可以分为文件流.网络流.内存流.磁带流等.Jav ...