题目链接

找$[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数字计数的更多相关文章

  1. bzoj1833 数字计数

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

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

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

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

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

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

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

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

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

  6. BZOJ_1833_[ZJOI2010]_数字计数_(数位dp)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1833 统计\(a~b\)中数字\(0,1,2,...,9\)分别出现了多少次. 分析 数位dp ...

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

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

  8. 1833: [ZJOI2010]count 数字计数

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

  9. BZOJ_1833_[ZJOI2010]count 数字计数_数位DP

    BZOJ_1833_[ZJOI2010]count 数字计数_数位DP 题意: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 分析: 数位DP f[i][ ...

随机推荐

  1. Linux重置管理员密码

    对于一些非专业的Linux运维工程师或者偶尔使用Linux系统的学习者而言,比如我,经常会碰到忘记密码的尴尬,那这时候,快速的重置密码就相当重要了.废话不多说,今天我们就一起来学习一下如何快速重置密码 ...

  2. 调试bug心得

    1. 忌主观主义.遇到问题,优先考虑客观排除法,按模块一一屏蔽测试排除.忌自己认为某个模块里的某个逻辑有问题,一直研究修改测试,被其他模块导致的偶然事件所干扰.通过排除法,找到震源,再解决.

  3. Java 依赖注入标准(JSR-330)简介

    作者:88250 ,Vanessa 时间:2009 年 11 月 19 日      Java 依赖注入标准(JSR-330,Dependency Injection for Java)1.0 规范已 ...

  4. C++ std::unordered_multimap

    std::unordered_multimap template < class Key, // unordered_multimap::key_type class T, // unorder ...

  5. 复杂链表的复制(java)

    问题描述 时间输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点), 返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引 ...

  6. LoadRunner11学习记录三 -- 迭代和并发

    LoadRunner中%d和%s是什么意思? %d 格式化输出短整形数据,TC环境中占用两个字节,输出整数范围为:32768~32767.Visual C++环境中占用四个字节,输出数据范围为:-21 ...

  7. POC索引

    最近在看窗口函数,接触到了POC索引,所以借此机会好好研究一下索引. 一般支持窗口函数的索引指南都遵循POC的概念,也就是Partitioning(分区).Ordering(排序)和Covering( ...

  8. java轻量级IOC框架Guice(转)

    出处:http://www.cnblogs.com/whitewolf/p/4185908.html Guice是由Google大牛Bob lee开发的一款绝对轻量级的java IoC容器.其优势在于 ...

  9. [GO]并的爬取捧腹的段子

    package main import ( "fmt" "strconv" "net/http" "regexp" &q ...

  10. [GO]goexit的使用

    package main import "fmt" func test() { defer fmt.Println("cccccccccccc")//在函数退出 ...