1833. [ZJOI2010]数字计数【数位DP】
Description
Input
Output
Sample Input
Sample Output
HINT
30%的数据中,a<=b<=10^6;
100%的数据中,a<=b<=10^12。
数位DP (废话)
我们可以知道,如果某一位开始没有限制的话,对每一位的$ans$是相同的且可以$O(1)$计算出来的
不妨这么考虑,假设有三位是没有限制的,那么一共有$10^3$种情况
每一位出现数字$x$的概率为$1/10$,那么三位加起来就是$3/10$
则数字$x$出现的次数为$10^3 * (3/10)$
注意判断一下前导零不计算入总结果的情况
#include<iostream>
#include<cstring>
#include<cstdio>
#define LL long long
using namespace std;
LL ten[]={,,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13};
LL a[],ans[],sum;
LL Dfs(LL pos,LL zero,LL limit,LL k)
{
if (pos==) return ;
if (!limit && !zero)
{
sum+=ten[pos]/*pos*k;
return ten[pos];
}
else
{
LL up=limit?a[pos]:,cnt=;
for (LL i=;i<=up;++i)
{
LL t=Dfs(pos-,zero && i==,limit && i==up,k);
if (zero && i==) continue;
ans[i]+=t*k;
cnt+=t*k;
}
return cnt*k;
}
} void Solve(LL x,LL k)
{
LL pos=;
while (x)
{
a[++pos]=x%;
x/=;
}
Dfs(pos,true,true,k);
} int main()
{
LL x,y;
scanf("%lld%lld",&x,&y);
Solve(y,);
Solve(x-,-);
for (LL i=;i<=;++i)
printf("%lld ",ans[i]+sum);
printf("%lld",ans[]+sum);
}
1833. [ZJOI2010]数字计数【数位DP】的更多相关文章
- UVA.1640.The Counting Problem / BZOJ.1833.[ZJOI2010]数字计数(数位DP)
题目链接 \(Description\) 求\([l,r]\)中\(0,1,\cdots,9\)每个数字出现的次数(十进制表示). \(Solution\) 对每位分别DP.注意考虑前导0: 在最后统 ...
- Luogu P2602 [ZJOI2010]数字计数 数位DP
很久以前就...但是一直咕咕咕 思路:数位$DP$ 提交:1次 题解:见代码 #include<cstdio> #include<iostream> #include<c ...
- 洛谷P2602 [ZJOI2010]数字计数(数位dp)
数字计数 题目传送门 解题思路 用\(dp[i][j][k]\)来表示长度为\(i\)且以\(j\)为开头的数里\(k\)出现的次数. 则转移方程式为:\(dp[i][j][k] += \sum_{t ...
- [ZJOI2010]数字计数 数位DP
最近在写DP,今天把最近写的都放上来好了,,, 题意:给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 首先询问的是一个区间,显然是要分别求出1 ~ r ,1 ...
- [luogu2602 ZJOI2010] 数字计数 (数位dp)
传送门 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output ...
- 【题解】P2602 数字计数 - 数位dp
P2602 [ZJOI2010]数字计数 题目描述 给定两个正整数 \(a\) 和 \(b\) ,求在 \([a,b]\) 中的所有整数中,每个数码(digit)各出现了多少次. 输入格式 输入文件中 ...
- 1833: [ZJOI2010]count 数字计数——数位dp
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1833 省选之前来切一道裸的数位dp.. 题意 统计[a,b]中0~9每个数字出现的次数(不算 ...
- bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)
1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...
- [bzoj1833][ZJOI2010]count 数字计数——数位dp
题目: (传送门)[http://www.lydsy.com/JudgeOnline/problem.php?id=1833] 题解: 第一次接触数位dp,真的是恶心. 首先翻阅了很多很多一维dp,因 ...
随机推荐
- 理解 RESTful 架构(转)
前言:REST指的是一组架构约束条件和原则." 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构. 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种& ...
- Python逐行读取文件内容
更详细的文件按行读取操作可以参考:http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html 一行一行得从文 ...
- Code Signal_练习题_adjacentElementsProduct
Given an array of integers, find the pair of adjacent elements that has the largest product and retu ...
- Wannafly挑战赛9 E - 组一组
链接:https://www.nowcoder.net/acm/contest/71/E来源:牛客网 题目描述 有一个长为 n 的数列 A,其中有 m 个限制条件,条件有两种: 1.对于区间 [l,r ...
- htm-文字标签和注释标签
文字标签:修改文字的样式 <font></font> 属性: size:文字的大小 取值范围 1-7,超出了7,默认还是7 color:文字颜色 两种表示方法 英文单词:re ...
- com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/NOTICE
在将vivo eclipse sdk 迁移 android studio 时候报错 Error:Execution failed for task ':vivosdk:transformResour ...
- oracle 中的角色
conn sys as sysdba;create role testrole;grant create session, create table, unlimited tablespace to ...
- local_listener参数的作用!
转自:http://warehouse.itpub.net/post/777/472788 pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,要想让pmon动态 ...
- 《Think in JAVA》之每日一读(initianlize)——2013/11/12、13
了解包括继承在内的初始化全过程,以对所发生的的一切有一个全局的把握,是很有益的. 请看下例: package initialize; class Insect { private int i = 9; ...
- npm、webpack、Gulp 中文教程
按顺序阅读 1.npm 模块管理器 2.package.json 文件 3.npm 模块安装机制简介 4.npm scripts 使用指南 5.CommonJS 规范 随着 es6 模块化特性的出现, ...