bzoj1833: [ZJOI2010]count 数字计数 数位dp

HDFView安装及使用教程 简介:直接用记事本打开hdf5文件的话,是一团乱码。HDFView是用来查看hdf5文件的软件,可以免费使用,好多人都有闪退的情况,这是因为没有添加环境变量。 阅读详情
传统数位dp思想,分位统计f[i][j][k]表示一个长i位的数第一位为j 到0 中字符k出现的次数。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <queue>
using namespace std;
long long f[13][10][10],fac[20];
struct node
{
    long long a[10];
}t1,t2;
void init()
{
    fac[1]=1;for(int i=2;i<=13;i++) fac[i]=fac[i-1]*10;
    for(int i=0;i<=9;i++) f[1][i][i]=1;
    for(int i=2;i<=12;i++)
    {
        for(int j=0;j<=9;j++)
        {
            for(int k=0;k<=9;k++)
            {
                for(int p=0;p<=9;p++)
                {
                    f[i][j][p]+=f[i-1][k][p];
                }
                f[i][j][j]+=fac[i-1];
            }
        }
    }
}
node get(long long x)
{
    node ans;for(int i=0;i<=9;i++)ans.a[i]=0;
    if(!x)
	{
		ans.a[0]=1;
		return ans;
	}
    int len=1;
    for(;x>=fac[len];len++);
    len--;
    for(int i=1;i<len;i++)
    {
        for(int j=1;j<=9;j++)
        {
            for(int k=0;k<=9;k++)
            {
                ans.a[k]+=f[i][j][k];
            }
        }
    }
    ans.a[0]++;
    int cur=x/fac[len];
	for(int i=1;i<cur;i++)
        for(int j=0;j<=9;j++)
            ans.a[j]=ans.a[j]+f[len][i][j];
	x%=fac[len];
	ans.a[cur]+=x+1;
    for(int i=len-1;i;i--)
    {
        cur=x/fac[i];
        for(int k=0;k<cur;k++)
        for(int j=0;j<=9;j++)
            ans.a[j]=ans.a[j]+f[i][k][j];
        x%=fac[i];
		ans.a[cur]+=x+1;
    }
    return ans;
}
int main()
{
    init();
    long long a,b;
    cin>>a>>b;
    t1=get(b);
    t2=get(a-1);
    for(int i=0;i<=9;i++)
	{
		printf("%lld",t1.a[i]-t2.a[i]);
		if(i!=9)printf(" ");
	}
    return 0;
}

业态即战场:零售平台的生意模型与系统设计解构 在这篇文章中,我们从“控货、自营、联营”三种典型零售业态出发,拆解了亚马逊、阿里、京东和本地闪购平台在商品模型设计上的差异与博弈。看似简单的卖货方式背后,其实是平台在“控货权”“商品归属权”上的深层策略博弈:谁掌控商品,谁就掌控数据、流量与利润分配权。本文尝试用一套通俗但不失专业的方式,帮助产品经理和技术伙伴读懂零售平台商品模型的底层逻辑与系统设计演化路径。 阅读详情

相关推荐

避开命令行!在VMware vCenter 8.0图形化界面里搞定SSL证书续期全流程

本文详细介绍了在VMware vCenter 8.0图形化界面中完成SSL证书续期的全流程,包括计算机SSL证书、VMCA根证书和STS证书的管理。通过可视化操作,管理员无需使用命令行即可高效处理证书问题,确保vSphere环境的稳定运行。文章还提供了证书监控与预警配置的实用技巧,帮助用户提前规避证书过期风险。

weixin_27051161的博客 282

bzoj1833: [ZJOI2010]count 数字计数(数位DP)

bzoj1833 题目表述:给定两个整数a和b,求在a到b的所有整数中,每个数码各出现了几次。 输入格式:一行两个整数a和b。 输出个数:一行包含10个整数,分别表示0~9出现了几次。 输入样例: 1 99 输出样例: 9 20 20 20 20 20 20 20 20 20 解析:一道标准的数位DP,dp[pos][sum]表示第pos...

diqiao4431的博客 170

从厘米级到公里级:北斗网格10级精度在ArcPro中的完整应用指南

本文提供了北斗网格十级精度体系在ArcGIS Pro中的完整应用指南。详细解析了从660公里到1.5厘米的十级网格尺度及其编码逻辑,并重点演示了如何在ArcPro中生成网格、计算编码,以及根据项目需求(如滑坡监测)选择合适精度层级的实战策略。指南旨在帮助GIS专业人士利用这套统一的网格框架,高效管理多尺度空间数据并优化分析工作流。

Black的专栏 472

【BZOJ】1833: [ZJOI2010]count 数字计数(数位dp)

http://www.lydsy.com/JudgeOnline/problem.php?id=1833 数位dp什么的最恶心了。 dfs时注意考虑两种边界,一种是此时正好在这个数上,那么答案应该加的是后边的数+1+dfs 否则就加10^(x-1)+dfs;这两个是显然的。自己多想想就懂了 具体看代码: #include <cstdio> #include &...

174

特征选择(模型输入参数的分析选择)方法汇总

特征选择是模式识别和机器学习领域的重要研究课题之一。为了提高准确率, 人们往往最大限度地提取特征信息。然而, 过大的特征向量维数不仅导致计算成本的增加, 复杂运算也随之带来分类识别率的下降。因此, 通过合适的特征选择算法, 去除无关特征和冗余特征, 获得有助于分类的最优特征子集, 对提高识别性能和降低计算成本具有重要意义。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 参考资料: 优快云《几种常用的特征选择方法》 知乎《机器学习中,.

David's Tweet 1万+

Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(10) C++ 前置后置增减运算符重载形式与比较

C语言的++、–运算符在此不讨论。 文章目录1、前置后置增减运算符重载的形式2、前置和后置运算符的性能比较 1、前置后置增减运算符重载的形式 自增运算符“++”和自减运算符“–”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为成员函数重载时不带参数,或者作为非成员函数重载时带有一个参数),那么重载

二进制君 5831

Bzoj1833:[ZJOI2010]count 数字计数:数位dp

题目链接[ZJOI2010]count 数字计数 设f[i][j][k]表示长度为i,开头为j的数中k的个数 分开统计答案,对于位数小于当前数的直接全部加上,剩余的拆分统计 #include #include #include #include #include #define LL long long using namespace std; const int maxn=51; LL a

蜜の夜明け 1175

PINN物理信息网络 | 非线性薛定谔方程的物理信息神经网络

PINN物理信息网络 | 非线性薛定谔方程的物理信息神经网络

算法如诗的博客 1299

BZOJ 1833: [ZJOI2010]count 数字计数 [数位DP]

1833: [ZJOI2010]count 数字计数 题意:统计\([l,r]\)所有数中每个数码出现次数 之前做的数位DP都是统计数有多少个,这个是统计数码 我们一个一个数码统计 如果不考虑前导0和天际线,我们可以直接递推i位数中每个数码出现次数\(f[i]=f[i-1]*10+10^{i-1}\) 当然不提前递推等着dfs完成也可以 同样用记忆化搜索来处理前导0和天际线 前导0只对统计0...

weixin_30757793的博客 79

【时时三省】tessy 集成测试 总论

序论不积跬步无以至千里,不积小流无以成江海。正文。

时时三省的博客 1148

javascript 酷炫时钟

javascript 酷炫时钟

liuhao9999的博客 631

BZOJ 1833: [ZJOI2010]count 数字计数 【数位DP】

BZOJ 1833: [ZJOI2010]count 数字计数 【数位DP】 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。

Dust_heart的博客 436

华为校招&实习&留学生机试真题目录+算法分类+在线OJ+通过率+视频讲解

全网最新最全华为校招&实习&留学生机试真题题库

m0_73659489的博客 6872

BZOJ1833: [ZJOI2010]count 数字计数(数位Dp)

Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 Input 输入文件中仅包含一行两个整数a、b,含义如上所述。 Output 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次。 Sample Input 1 99 Sample Output 9 20 20 20 20 20...

Unstoppable728的博客 143

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

bzoj 1833: [ZJOI2010]count 数字计数(数位dp)

1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2759  Solved: 1221 [Submit][Status][Discuss] Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 Input 输入文件中仅

clover_hxy的博客 438

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

bzoj1833: [ZJOI2010]count 数字计数(数位Dp)

题目传送门 这道题怎么跟windy数辣么像啊。 但是比windy数好像很多。解法: f[i][j][k]表示i位数最高位为j,这些数中有多少个k。 Dp方程显而易见不想多说了。memset(f,0,sizeof(f)); for(int i=1;i<=12;i++) for(int j=0;j<=9;j++) { f[i][j][j]=pow

Hanks_o的博客 520

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【数位dp】bzoj1833: [ZJOI2010]count 数字计数

数位dp姿势一直很差啊;顺便庆祝一下1A Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 Input 输入文件中仅包含一行两个整数a、b,含义如上所述。 Output 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次。 Sample Input 1 99 Sample Outp...

weixin_30493321的博客 90

BZOJ 1833: [ZJOI2010]count 数字计数 数位DP,处理前导0

Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 Input 输入文件中仅包含一行两个整数a、b,含义如上所述。 Output 输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次。 Sample Input 1 99Sample Output 9 20 20 20 20 20 20

I good vegetable a! 537

[bzoj 1833] [ZJOI2010]count 数字计数:数位DP

题意:求[a, b]之间的所有整数中各个数码出现了多少次。(1<=a<=b<=10^12,a, b是整数)考虑[1, x)内各个数码出现了多少次。设f[i][j][k]为以j开头的(i+1)位十进制串中k出现的次数,递推。 也可以简化为f[i],因为每个数码出现的次数相等。本文对两种均给出了实现。 [1, x)内的数可分为三类: 1. 位数少于x。 2. 最高位小于x。 3. 和x有公共的前缀。

chrt's blog 481

bzoj 1833: [ZJOI2010]count 数字计数【数位dp】

非典型数位dp 先预处理出f[i][j][k]表示从后往前第i位为j时k的个数,然后把答案转换为ans(r)-ans(l-1),用预处理出的f数组dp出f即可(可能也不是dp吧……) #include<iostream> #include<cstdio> using namespace std; long long l,r,t[25]; struct dp { lo...

weixin_30757793的博客 90

【BZOJ】1833: [ZJOI2010] count 数字计数(数位dp)

题目 传送门:QWQ 分析 蒟蒻不会数位dp,又是现学的 用$ dp[i][j][k] $ 表示表示长度为i开头j的所有数字中k的个数 然后预处理出这个数组,再计算答案 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll dp[25][15][1...

weixin_30709929的博客 103

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

1833: [ZJOI2010]count 数字计数 题目:传送门 题解:    今天是躲不开各种恶心DP了???    %爆靖大佬啊!!!    据说是数位DP裸题...emmm学吧学吧    感觉记忆化搜索特别强:    定义f[i][j][k]表示若前i个位置有k个j的此时的全局方案数,然后就可以记忆化搜索了(具体看代码吧)    ...

weixin_30536513的博客 132

bzoj1833: [ZJOI2010]count 数字计数(数位dp)

  学习了一波记忆化数位dp后写这题...我好像写的都跟大家的不一样???跑的还挺快的???(其实全世界一样都是0ms...)   题目大意:求[a,b]中0~9分别出现几次。(a,b<=10^12)   dp[pos][num][sum]表示前pos位,求num出现几次,这个数前pos位num已经出现sum次,前导零也很好处理,套记忆化模板就行了。   (太久没写博客了水一篇...(...

weixin_30929011的博客 116

BZOJ1833: [ZJOI2010]count 数字计数 (数位dp)

传送门 数位dp... ...大概都是这个套路吧... ... 写这个的时候直接水了一发... ...我也不知道自己写的是不是dp... ... 大概是主要内容和dp关系不大的dp... ... mark代码..细长的代码真是丑啊..换行太频繁了.... 1 #include<cmath> 2 #include<cstdio> 3 #incl...

weixin_30770495的博客 77
上一篇: bzoj1072: [SCOI2007]排列perm 压状dp
下一篇: bzoj2223: [Coci 2009]PATULJCI 主席树
IED98
博客等级 码龄12年 5粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值