最新要闻
- 美国CPI进入下行趋势 黄金期货继续维持震荡 全球快看点
- 李想:很多友商那仨瓜俩枣的销量有啥可干的|天天速讯
- 男子熬夜喝冰镇饮料被送进ICU 医生从血里抽出一袋油脂:超标200倍 全球看点
- 环球讯息:西安现最牛司机 车尾标语3月撞7次!奔驰大G、奥迪都被撞过
- 世界新消息丨美国发布临时禁令:微软收购动视暴雪再次受阻
- 天津两处居民楼爆炸,致3死多伤!嫌疑人被抓获,作案工具是_环球新资讯
- 入侵无线App盗用户资料 40岁男子被捕|观察
- 天天时讯:有无眉毛哪个更好看?哪吒CEO:“去掉眉毛”的哪吒GT将上市
- 携程梁建章建议:生三胎每月给五六千 给到18岁为止 速讯
- 15英寸MacBook Air首销破发!渠道价比官网便宜1000多|全球速看
- 新能源重卡 为何终将颠覆燃油重卡?
- 华为开发者大会2023早鸟票开售 498元起-全球最资讯
- 速讯:注意!绿心环线多路段将进行抓拍
- 演唱会买到“柱子票”,可以有更好的解决办法 全球要闻
- PCIe 6.0还没用上:PCIe 7.0这就来了!x16速度高达512GB/s-世界滚动
- 175W功耗释放稳压64℃!铭瑄RTX 4060 Ti iCraft OC8G瑷珈显卡评测:二次元秀肌肉-环球观天下
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
数位 DP
引入
数位是指把一个数字按照个、十、百、千、万等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 $0\sim 9$。
(资料图片仅供参考)
数位 DP 一般是用来解决一类特定问题,以 1012. Numbers With Repeated Digits (Hard) 为例,这一类问题的特征非常明显
- 要求统计满足一定条件的数的数量;
- 这些条件经过转化后可以使用“数位”的思想去理解和判断;
- 输入会提供一个数字区间(有时候只提供上界)来作为统计的限制;
- 上界很大(例如 $10^{22}$),暴力枚举会超时。
思路
对 1012. Numbers With Repeated Digits (Hard),思路如下:
首先,正难则反,我们可以考虑 $[1, n]$ 范围内无重复数字的正整数的个数,记为 $res$,然后最终结果就是 $n - res + 1$(至于为什么还要再加上 $1$,后面会说明)。
因此问题转化为求 $[1, n]$ 范围内无重复数字的正整数的个数,符合上述的数位 DP的特征,我们可以从记忆化搜索的角度去考虑,首先将 $n$ 转化为对应的字符串,对字符串的每一位,枚举每一位可能的数,如果最后组成的数字满足 $num < n$,那么 $res += 1$,这里很容易想到 dfs(string &str, int idx, int mask)
,$mask$ 以二进制的形式表示 $0\sim 9$ 范围内的数是否被选择过;
但是仅仅是这样,我们不能方便的判断当前组成的数字是否满足 $num < n$,因此,我们需要一个额外的参数 $is_limit$。例如对数字 $n = 12345$,如果前面已经选择的数字为 $123$,那么对本次枚举,$is_limit$ 为 $true$,即数字只能选择 $0\sim4$,又因为 $1,\ 2,\ 3$ 已经选择了,$mask = 14$,因此只有 $0,\ 4$ 可以选,事实上,我们可以发现,在递归的过程中,当且仅当当前 $is_limit$ 为 $true$,且当前选择的数字与对应数位上的数字相等时,更深一层递归的 $is_limit$ 仍为 $true$,至此,递归函数为 dfs(string &str, int idx, int mask, bool is_limit)
;
此外,由于我们递归的终止条件应该是 $idx \geq str.size()$,这样就只能统计出位数与 $n$ 相同的情况,而位数小于 $n$ 的就被忽略了,这是我们不能接受的,因此我们还需要一个参数 $filled$ 来标记之前的位有没有被填充,假设 $filled$ 为 $false$,说明之前没有被填充,那么有两种选择
- 当前位也不填充,
res += dfs(str, idx + 1, false, mask, filled, cach)
; - 如果要填充,那么必须从 $1$ 开始填充(因为不能有前导 $0$),
res += dfs(str, idx + 1, false, mask, true, cach)
。
模板
根据以上分析,我们可以总结出一个数位 DP适用的模板,如下:
int dfs(string &str, int idx, bool is_limit, int mask, bool filled, vector>>> &cach) { if (idx == str.size()) { return 1; // 说明找到了一个合理的选择 } if (cach[idx][is_limit][mask][filled] != -1) { return cach[idx][is_limit][mask][filled]; } int limit = is_limit ? str[idx] - "0" : 9; int res = 0; if (!filled) { // 前面的数位都没有填充 res += dfs(str, idx + 1, false, mask, false, cach); } int left = filled ? 0 : 1; for (int i = left; i <= limit; ++i) { if (((1 << i) & mask) != 0) { // 说明 i 已经选择过了 continue; } res += dfs(str, idx + 1, is_limit && (i == str[idx] - "0"), mask | (1 << i), true, cach); } cach[idx][is_limit][mask][filled] = res; return res;}
在这个模板中,由于所有位都不填,也会被统计进结果中,因此 $res$ 比实际的 $res$ 多了 $1$,我们可以在最后计算的时候减去 $1$,也可以把边界条件的返回值修改为如下:
if (idx == str.size()) { return is_num; // is_num 为 true 说明找到了一个合法的数字,为 false 说明所有位都不填}
参考
OI-Wiki:数位 DP
0x3f:数位 DP 通用模板
关键词:
数位 DP
【全球时快讯】深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等
直播app源码技术之直播间内消息发送与接收的实现-世界今日讯
真实案例:Feign 切换 okhttp 无法生效,被老大骂的有点慌!
美国CPI进入下行趋势 黄金期货继续维持震荡 全球快看点
李想:很多友商那仨瓜俩枣的销量有啥可干的|天天速讯
男子熬夜喝冰镇饮料被送进ICU 医生从血里抽出一袋油脂:超标200倍 全球看点
环球讯息:西安现最牛司机 车尾标语3月撞7次!奔驰大G、奥迪都被撞过
世界新消息丨美国发布临时禁令:微软收购动视暴雪再次受阻
天津两处居民楼爆炸,致3死多伤!嫌疑人被抓获,作案工具是_环球新资讯
Canvas_绘制线段、圆形、文本、图像、视频、处理图像数据
【项目管理解决方案】上海道宁与Synami帮助您统一所有项目级别的信息,并使所有人轻松访问
Zabbix“专家坐诊”第195期问答汇总_当前看点
XenServer 7 GUI 虚拟机(VM)上的屏幕分辨率怎么提高? 环球简讯
入侵无线App盗用户资料 40岁男子被捕|观察
天天时讯:有无眉毛哪个更好看?哪吒CEO:“去掉眉毛”的哪吒GT将上市
携程梁建章建议:生三胎每月给五六千 给到18岁为止 速讯
15英寸MacBook Air首销破发!渠道价比官网便宜1000多|全球速看
新能源重卡 为何终将颠覆燃油重卡?
华为开发者大会2023早鸟票开售 498元起-全球最资讯
速讯:注意!绿心环线多路段将进行抓拍
MySQL性能分析及工具使用_今日热讯
演唱会买到“柱子票”,可以有更好的解决办法 全球要闻
PCIe 6.0还没用上:PCIe 7.0这就来了!x16速度高达512GB/s-世界滚动
175W功耗释放稳压64℃!铭瑄RTX 4060 Ti iCraft OC8G瑷珈显卡评测:二次元秀肌肉-环球观天下
为保护迎客松不让当地用户买木头、绿植?黄山回应
颠覆物理学!美国院士称复现室温超导 这还是骗局?
关注: 信用卡逾期停息挂账申请有什么条件?网贷逾期有什么影响?_当前热点
融创优化强制可转债方案 境外债重组方案获约近九成债权人支持
【读财报】游戏ETF透视:华夏基金规模、业绩领跑 华泰柏瑞、浦银安盛基金份额萎缩
南京十四所招聘官网_南京十四所_天天快资讯
20余省已公布高考查分时间:集中在6月下旬
卖1万多的15英寸MacBook Air 256GB SSD性能降级:不如上代
far away from home mp3下载百度网盘_far away from home歌词 天天短讯
95号汽油进入7元时代:国内油价接下来或还有降价空间!_天天信息
迷信进口屏幕电视:买回家发现大错特错了
HangFire进阶 当前资讯
ASP.NET Core MVC 从入门到精通之鉴权授权基础|今日最新
再也不用担心变量类型错误!学会JS中如何轻松检查变量类型_世界快看
武则天《升仙太子碑》 行草入碑敢为人先
中国特供显卡炒到20多万 英伟达赚麻了:有公司抢购70亿元订单-即时焦点
全球热头条丨大学期末划重点堪比发布会现场 学生举手机拍照 网友:很真实
科幻神作!三部《阿凡达》续集宣布推迟上映:第3部定档2025年
观天下!1152MB三级缓存天下无敌!AMD正式发布EPYC 9084X:96核心Zen4
突然!漫威多部新片宣布延期:《复仇者联盟5》《复仇者联盟6》再跳票1年_每日时讯
6月13日基金净值:信澳鑫安债券(LOF)最新净值1.009,跌0.1%
全球热点评!26岁零70天 Uzi成为LPL历史出场最年长的ADC选手
日本试运行核污染水排海设备 放射性物质将蔓延至全球海域
一男子挤痘后流血近1个小时 整个过程花费400抽面巾
梅西直播被吐槽上热搜前排 画面仅有一分钟引发大量网友不满
国产动漫《斗罗大陆2》即将开播 新史莱克七怪徐三石PV公布
埃兹拉·米勒出席《闪电侠》好莱坞活动 为官司缠身后的首次公开露面
云南金平县迎来蝴蝶集中羽化期 漫天飞舞犹如纷飞的落叶
辽宁一男子拔倒刺导致手指发炎感染 诊断为化脓性肉芽肿并缝了6针
为应对严重的黄牛倒卖问题 宝可梦社宣布新卡组将采用预购制
《碟中谍7》中国内地定档7月14日正式上映 汤姆·克鲁斯惊喜回归
海外最大论坛网站Reddit遭网友怒怼 或使第三方应用无法访问该服务
MySql的MVCC机制
.NET 使用ILPack组件将程序集保存成dll 世界球精选
蔚来全系降价3万!未必心甘情愿 但又无可奈何:被大众收购才是出路?
4990元起!雅迪冠能探索E10发布:2000W电机、极速62Km/h 最资讯
欠薪过亿!时隔两月 宝能汽车总部又被“堵门”_每日视讯
《守望2》新付费PVE让玩家不爽:暴雪你还有脸要钱呢? 热头条
李想:并没把国内友商放在眼里 理想的目标是干BBA
现代C++学习指南-方向篇|焦点速读
文心一言 VS 讯飞星火 VS chatgpt (40)-- 算法导论5.4 4题|天天快播
天天快资讯:澳科大领衔的研究团队开发出新型人工智能医疗诊断模型
M2 Ultra加持!苹果新款Mac Studio评测:5万元的恐怖生产力
当前速看:马斯克称人类已经是半机器人:大脑思维上传服务器可永生
世界热讯:Arm发布全新智能视觉参考设计 首次整合第三方IP核心
“上四休三”的老板后悔了 有员工选择混:这制度对国人不适合? 环球快消息
央行下调常备借贷便利利率
MySQL索引
OnceCell和OnceLock的介绍-每日时讯
公开反对电动汽车后:丰田低头了
云南金平迎来蝴蝶大爆发:近亿只集中羽化 犹如纷飞落叶-世界观焦点
支持电视端:爱奇艺白金会员年卡+京东PLUS会员年卡248元
世界观点:SK-II回应神仙水是否有核污染:符合国家标准
每日报道:12代及以上CPU性能更强了!Intel为Linux开发新调度补丁
张轩昊丨操作思路分享【6月13日】今日黄金原油操作建议,实盘交易干货分享!
焦点速看:用纯HTML,JS,CSS实现横向滚动标签页
CSS常用属性
腾势N7盲订破2万台 增换购用户55%来自BBA等豪华品牌
世界短讯!特斯拉充电标准一天内被四家公司接受 网友:马始皇?
学习Win12好榜样?国产OS系统deepin成立AI社区:未来更智能_世界热头条
69元 小米车载充电器特惠开售:100W快充 配有炫彩灯效 时讯
环球热讯:历史性变革 大众汽车计划进行数十年来最大规模重组
年仅52岁!知名男演员在睡梦中去世... 今日热讯
国内第四大运营商 中国广电终于支持携号转网:但只入不出
刚考完科目一就买车上路 男子:想提前预习科目二、科目三
还说5G没用?全国5G平均下行速率348Mbps 比4G快6倍
环球视讯!被动散热靠谱么?博主实测15英寸MacBook Air性能表现
【新要闻】蔚来号召员工为车主献血 称“伙伴们都在积极报名”
焦点速讯:洛阳老城区:拆违治乱顺民意
【快播报】Collections类源码初探
天天微资讯!2023油价调整窗口时间表一览
马斯克 一统海外充电江湖!
新增自动拍摄功能:尼康Z9获4.00版本固件更新
90后小伙中1000万大奖 淡定回应先去上个班:不着急领
看热讯:阵容强大!长城汽车17位高管集体入驻微博:吉利副总裁盛赞