当前位置: 首页 > news >正文

P2602 [ZJOI2010] 数字计数

P2602 [ZJOI2010] 数字计数

大意

给定区间 \([a, b]\),统计其中所有整数中,数字 \(0 \sim 9\) 分别出现的总次数。数据范围达到 $10^{12}。

思路

状态定义

使用 f[pos][sum][lim][zero] 表示记忆化状态:

  • pos: 当前处理到的数位下标(从高到低)。
  • sum: 目标数字 dig 在当前路径下已经出现的次数。
  • lim: 布尔值,表示当前位是否受到上界限制(若为 true,则当前位最大只能填到 \(a[pos]\))。
  • zero: 布尔值,表示当前是否处于前导零状态。

如果 zero 为 true 且当前位填了 \(0\),则这个 \(0\) 是前导零,不计入数字 \(0\) 的出现次数,且下一位依然处于 zero 状态。

只有当 !zero(已经填过非零数字)时,填入的数字才算作有效计数。

代码

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;const int MAXN = 15;
long long f[MAXN][MAXN][2][2];
int a[MAXN], len, dig;
//f[i][j][k][l]
//pos lim sum zero
long long dp(int pos, int sum, bool lim, bool zero){if(pos == len){return sum;}if(~f[pos][sum][lim][zero]){return f[pos][sum][lim][zero];}long long ans = 0;int maxx = lim ? a[pos] : 9;for(int i = 0;i <= maxx;i ++){bool nw = zero && (i == 0);ans += dp(pos + 1, sum + ((i == dig) && !nw), lim && (i == maxx), nw);}return f[pos][sum][lim][zero] = ans;
}long long solve(long long x){memset(f, -1, sizeof(f));len = 0;while(x){a[len ++] = x % 10;x /= 10;}reverse(a, a + len);return dp(0, 0, 1, 1);
}int main(){long long a, b;cin >> a >> b;for(int i = 0;i <= 9;i ++){dig = i;cout << solve(b) - solve(a - 1) << ' ';}return 0;
}
http://www.jsqmd.com/news/360922/

相关文章:

  • 2026年靠谱的徽派仿古铝瓦/寺庙仿古铝瓦品牌厂家推荐哪家强 - 品牌宣传支持者
  • 2026年激光除锈机选购指南,推荐适合文物和模具除锈的靠谱品牌 - myqiye
  • 2026年眼疲劳眼液产品推荐:基于多场景实测评价,针对敏感眼与隐形眼镜佩戴痛点指南 - 品牌推荐
  • 4个颠覆维度重构无线感知技术:从隐私安全痛点到商业价值转化的实战方法论
  • 高价值立减金变现攻略:选对券、换更多、不踩坑 - 团团收购物卡回收
  • 2026年海淀海清大厦、外文文化创意园招租,这些靠谱品牌推荐给你 - mypinpai
  • 少走弯路:专科生专属的降AIGC平台,千笔·降AIGC助手 VS 灵感风暴AI
  • 在关系中划出“防火墙”:不是隔离你,而是保护咱们
  • 2026年劳保鞋工厂推荐:基于多场景实测与成本痛点深度评测排名 - 品牌推荐
  • 2026年口碑好的吸管企业推荐,涿州市荟芳塑料制品有限公司全解析 - 工业品牌热点
  • 好写作AI:学术党的“规范护卫队”,让导师少叹气,让查重不找你!
  • 云WAF与安全组的高级绕过技术
  • 洁净环境监测“守门人”:粒子计数器核心要素解析与Top5厂家推荐 - 深度智识库
  • 好写作AI:文案人的“爆款军火库”!让AI帮你批量生产100个创意标题
  • Linux音频工具keysound:自定义键盘音效的开源解决方案
  • H5GG iOS修改引擎全解析:从技术原理到实战应用
  • 全能无损音频处理工具:fre:ac让音乐转换更高效
  • wx-charts完全指南:7个核心技巧助你实现小程序数据可视化
  • 3分钟解决USB设备弹出难题:USB-Disk-Ejector工具实战指南
  • 扣子Coze实战:从0到1搭建小红书图文改写智能体
  • 微信立减金用不上?零基础变现步骤,轻松换现金 - 团团收购物卡回收
  • Android 基础入门教程4.2.3 Service精通
  • ‌量子钟在绝对零度下的运行误差分析
  • 二次元追番工具:三步打造专属番库,随时随地畅享追番乐趣
  • ROFL-Player:突破英雄联盟回放解析限制的开源工具全攻略
  • 2026年劳保鞋工厂推荐:智能制造趋势排名,涵盖重工与日常防护场景痛点 - 品牌推荐
  • Deepoc低幻觉数学大模型,赋能发动机行业数智化升级
  • Unity RTS开发架构解密:从核心模块到商业级优化
  • Typora绘制-类图
  • 2026年广州种植牙医院推荐:数字化技术趋势排名,解决信息不对称与手术安全核心痛点 - 品牌推荐