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][ ...
随机推荐
- 验证码及密码加密在java中使用
package com.huawei.filter; import java.io.IOException; import javax.servlet.Filter;import javax.serv ...
- 40行代码爬取猫眼电影TOP100榜所有信息
主要内容: 一.基础爬虫框架的三大模块 二.完整代码解析及效果展示 1️⃣ 基础爬虫框架的三大模块 1.HTML下载器:利用requests模块下载HTML网页. 2.HTML解析器:利用re正则表 ...
- 136. Single Number唯一的数字
[抄题]: Given an array of integers, every element appears twice except for one. Find that single one. ...
- linux系统如何更改文件权限
一. 更改文件9个属性:chmod 用这个命令修改文件属性有两种方式:数字或者符号 1. 数字类型改变文件权限 chmod (1)类unix系统的文件有9个属性分别是owner/group/other ...
- spring4-2-bean配置-2-属性注入细节
配置 bean,本章节中主要介绍蓝色文字部分. 配置形式:基于 XML 文件的方式:基于注解的方式 Bean 的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法 & 实例工厂方法).F ...
- Oracle表格字段采用sequence进行自增长时,采用Dbutils进行insert或update数据时的处理技巧
// 定义插入记录的方法 public Teacher insert(String name, String gender, Double score) { // 获得连接 Connection co ...
- CentOS搭建VSFTP服务器
一.安装vsftpd 1.查看是否已经安装vsftpd 2.如果没有,就安装 3.测试是否安装成功 4.安装成功设置开机启动 二.配置vsftpd 1.修改配置文件/etc/vsftpd/vsftpd ...
- QT中自定义系统托盘的实现—c++语言为例
将要介绍的是:QT中自定义系统托盘(systemtray)的一个Demo,希望能帮需要的读者快速上手. 前提假设是诸位已经知道QT中的signals .slot以及资源文件,所以关于这些不会再累述. ...
- [模板]单源最短路径(Dijkstra)
如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 主要还是再打一遍最短路,这种算法我用的不多... #include<bits/stdc++.h> using namesp ...
- Maven远程发布项目到tomcat
向tomcat发布项目,每次都要打包传送再运行,非常麻烦.偶然一天发现maven有插件可以直接发布到tomcat.今天把大体过程介绍给大家. 首先在pom中配置tomcat插件: <plugin ...