bzoj1833: [ZJOI2010]count 数字计数 && codevs1359 数字计数
这道题也是道数位dp 因为0有前导0这一说卡了很久 最后发现用所有位数减1~9的位数就okay.....orzczl大爷 其他就跟51nod那道统计1出现次数一样啦
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
using namespace std;
LL read(){
LL ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
LL f[][][],w[],cur=,ans1[],ans2[];
void prepare(){
w[]=; for(int i=;i<=;i++) w[i]=w[i-]*;
for(int i=;i<=;i++) f[][i][i]=;
for(int i=;i<=;i++)
for(int j=;j<=;j++)
for(int k=;k<=;k++){
for(int z=;z<=;z++)
f[i][j][k]+=f[i-][z][k];
if(j==k) f[i][j][k]+=w[i];
}
}
void work1(LL n){
int cur=;
if(!n){ans1[]=; return ;}
while(w[cur]>n) cur--;
LL tot=;
for(int i=;i<cur;i++) tot+=(w[i+]-w[i])*i;
tot+=(n-w[cur]+)*cur;
LL v=n/w[cur];
for(int i=;i<=;i++)
for(int j=;j<v;j++)
ans1[i]+=f[cur][j][i];
ans1[v]=ans1[v]+n%w[cur]+;
n=n%w[cur];
for(int i=cur-;i;i--){
v=n/w[i];
for(int j=;j<=;j++)
for(int k=;k<v;k++) ans1[j]+=f[i][k][j];
ans1[v]=ans1[v]+n%w[i]+;
n=n%w[i];
}
//printf("%lld %lld\n",tot,ans1[0]);
for(int i=;i<=;i++) tot-=ans1[i]; ans1[]=tot;
}
void work2(LL n){
int cur=;
if(!n){ans2[]=; return ;}
while(w[cur]>n) cur--;
LL tot=;
for(int i=;i<cur;i++) tot+=(w[i+]-w[i])*i;
tot+=(n-w[cur]+)*cur;
LL v=n/w[cur];
for(int i=;i<=;i++)
for(int j=;j<v;j++)
ans2[i]+=f[cur][j][i];
ans2[v]=ans2[v]+n%w[cur]+;
n=n%w[cur];
for(int i=cur-;i;i--){
v=n/w[i];
for(int j=;j<=;j++)
for(int k=;k<v;k++) ans2[j]+=f[i][k][j];
if(v) ans2[v]=ans2[v]+n%w[i]+;
n=n%w[i];
}
//printf("%lld %lld\n",tot,ans2[0]);
for(int i=;i<=;i++) tot-=ans2[i]; ans2[]=tot;
}
int main()
{
prepare();
work1(read()-); work2(read());
for(int i=;i<=;i++){
printf("%lld",ans2[i]-ans1[i]);
if(i!=) printf(" ");
}
return ;
}
bzoj1833: [ZJOI2010]count 数字计数 && codevs1359 数字计数的更多相关文章
- [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 输入文件中仅包 ...
- bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)
1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...
- [BZOJ1833][ZJOI2010]Count数字计数(DP)
数位DP学傻了,怎么写最后都写不下去了. 这题严格上来说应该不属于数位DP?只是普通DP加上一些统计上的判断吧. 首先复杂度只与数的位数$\omega$有关,所以怎么挥霍都不会超. f[i][j][k ...
- [bzoj1833][ZJOI2010]count 数字计数——数位dp
题目: (传送门)[http://www.lydsy.com/JudgeOnline/problem.php?id=1833] 题解: 第一次接触数位dp,真的是恶心. 首先翻阅了很多很多一维dp,因 ...
- BZOJ1833 [ZJOI2010]count 数字计数 【数学 Or 数位dp】
题目 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入格式 输入文件中仅包含一行两个整数a.b,含义如上所述. 输出格式 输出文件中包含一行10个整数, ...
- bzoj1833: [ZJOI2010]count 数字计数&&USACO37 Cow Queueing 数数的梦(数位DP)
难受啊,怎么又遇到我不会的题了(捂脸) 如题,这是一道数位DP,随便找了个博客居然就是我们大YZ的……果然nb,然后就是改改模版++注释就好的了,直接看注释吧,就是用1~B - 1~A-1而已,枚举全 ...
- bzoj1833: [ZJOI2010]count 数字计数 数位dp
bzoj1833 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. O ...
- 【数位dp】bzoj1833: [ZJOI2010]count 数字计数
数位dp姿势一直很差啊:顺便庆祝一下1A Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a ...
随机推荐
- lnmp操作
LNMP 1.2+状态管理: lnmp {start|stop|reload|restart|kill|status}LNMP 1.2+各个程序状态管理: lnmp {nginx|mysql|mari ...
- Get Error when restoring database in Sql Server 2008 R2
When I restored a database I got an error: "The backup set holds a backup of a database ot ...
- Eclipse AmaterasUML 安装及使用
AmaterasUML 对于我来说,是一个非常好用的UML插件. 用它来将我写过的一些Android程序进行逆工程非常好用,只不过,不能体现出包,这是一个小小的遗憾. 这个是它的主页地址:http:/ ...
- POI HSS 合并重复的列
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; i ...
- devstack环境搭建
1. devstack部署 参考Quick Start,推荐使用ubuntu16.04进行安装 1.1 配置ubuntu国内源 修改/etc/apt/sources.list内容为 deb http: ...
- u盘中毒后文件夹没显示了
今日,我的U盘插了有毒的电脑,直接中毒了,先是显示有木马,后是自行产生一些文件,接着文件夹没了,后来自己终于解决了,分享一下,自己先用工具将有嫌疑的文件提炼出来,经自行检查后处理,接着打开文件夹选项, ...
- week12第二轮迭代任务分配forZ.XML
Z.XML第二轮迭代任务初步分配新鲜出炉,请关注! 以上便是任务分配列表,队员们会按照进度每天更改任务进度 当然,根据敏捷开发的方法,我们将在开发过程中根据情况迅速调整任务分配,以适应当时问题. Z- ...
- winform构造函数和load事件
有些地方,有些代码写在构造函数里面运行不成功: 但是加在load事件里面运行成功: 有时候,反则反之.
- PHP+IIS上传大文件
最近刚接触IIS服务器,在使用php上传大文件的时候,遇到了一些问题.通过查阅网上资料进行了总结,希望对各位有帮助. 第一步,检查PHP的配置. 打开php.ini配置文件 1.file_upload ...
- java--List转换成json格式
方法一 首先导入jar包,json-rpc-1.0.jar public class List2Json { public static JSONArray ProLogList2Json(List& ...