数位dp模板

数位DP 详解及其案例实战 [模板+技巧+案例] DP的本质:DFS+记忆化搜索(可选项)+约束(可选项) 数位DP简单介绍 数位DP的本质 数位DP在实际使用面临什么难点 数位DP典型模板和技巧 leetcode233数字 1 的个数 leetcode 2376 统计特殊整数 leetcode1012 至少有 1 位重复的数字 阅读详情
// cur : 当前位数
// last: 上一位数对应的数字
// status: 可以当作一个bool值
//          比如题目是不要 4和7,那么只要之前的status = false,那么后面不管如何取值都是 false
// limit : 如果能取0~9就为 false, 否则为 true

// 巧妙的地方有两点
// 1.dfs中的dp记忆条件是当前位数的取值是否受限: 因为一个位数受限的值可能不同,对应的dp也会不同,比如
// 一个上限是 8和一个上限是7的dp肯定会不同,对此要想剪枝,只能让dp取不受限的情况下(上限都是9,幸运的是这种情况占多数)
// 如果不受限dp有值就直接返回值,如果受限的话,只能老老实实做dfs求出对应的值;因为有这种记忆方式,才能让dfs不超时

// 2.statue在dfs中的取值要考虑前一次的情况,比如题目不要4和7,如果上一次的status 是true,那么只要当前位数的
// 取值不是4和7就行了,如果是false,那么我后面不管怎么取值都是false; 直到dfs到最后 cur < 1 的时候返回0或者1
// 以此达到一个计数的目的

ll DIG[20], dp[15][15][5];

ll dfs (int cur, int last, int status, bool limit) {
    if (cur < 1) return status;
    if (!limit && dp[cur][last][status] != -1)
        return dp[cur][last][status];

    int End = limit ? DIG[cur] : 9;
    ll ret = 0;

    for (int i = 0; i <= End; ++i)
        ret += dfs (cur-1, i, status && (i != 4 && i != 7), limit && (i == End)); 

    if (!limit)
        dp[cur][last][status] = ret;
    return ret;
}

ll solve (ll x) { // 先把数的位数用DIG数组存起来
    int m = 0;
    while (x) {
        DIG[++m] = x % 10;
        x /= 10;
    }
    return dfs (m, -1, 1, true); // 第一次dfs是最高位的数,所以limit = true, 对应status根据题意定
}

 

数位DP——小结及模板 一、数位DP 用于解决 范围 [L, R] 内满足某些条件的数有多少 的问题,所谓数位,就是指数的个位、十位、百位、千位… 一般会将先将求ans [L, R] 转化为求 ans [0, R] - ans [0, L-1] ,从而问题就变为数位DP求解 ans [0, X] 数位DP最重要的是状态的构建,而具体DP的过程则是利用DFS+记忆化搜索实现,这样更好理解并实现,而状态的构建则更像是状态的压... 阅读详情

相关推荐

从jieba分词到BERT-wwm——中文自然语言处理(NLP)基础分享系列(12)

今天是本系列的最后一期,完整代码呈现Huggingface transformers平台上微调BERT-wwm-ext的过程方法。

weixin_49518391的博客 3763

数位dp总结 之 从入门到模板

转自巨佬:https://blog.youkuaiyun.com/wust_zzwh/article/details/52100392 基础篇 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!   之所以要引入数位的...

G-Howe的博客 4万+

OLLAMA_HOST环境变量设置全攻略:从127.0.0.1到局域网共享的完整配置

本文详细解析了OLLAMA_HOST环境变量的核心作用与配置方法,指导用户如何将Ollama服务从仅限本机访问(127.0.0.1)扩展到局域网共享。文章涵盖了macOS、Linux、Windows三大平台的实战配置步骤,并提供了安全加固、性能优化及常见故障排查方案,是解决多设备协作访问本地AI模型的完整指南。

weixin_28455801的博客 1896

数位DP模板

数位DP问题数位DP指一类问题:给定正整数区间[s, e],问符合条件的数一共有多少个。例如hdu2089以及hdu3555等。 其中,hdu2089的条件为数字中不含4且不含62,hdu3555的条件为数字中包含49。一般而言,这类条件中至少有一个是与整个数的数值无关的,而是与每一位的数字有关。例如上面2道题的条件就与整个数的数值无关。 因此这类问题实际上是数位有关的问题,另一方面,这类问题通

RBS的专栏 1279

射频工程师笔记---射频通信基础

回顾一下移动通信技术的发展,其实是互联网和通信技术的融合过程。在这个过程中,很多应用都在不断加入其中。比如计算机跟通信的融合产生了互联网、互联网跟手机的融合带来了移动互联网。手机可以看杂志、看视频、听音乐,于是又出现了内容服务产业;再后来,电视音箱等设备也能联网,于是网络跟家电又产生了融合。所以应用的出现总是在融合其他产业。在1995年,比尔·盖茨在《未来之路》一书中首次提出:在未来...

多年硬件从业经历,热爱学习,记录生活! 2万+

k8s重装1.28.2+calico+踩坑收集+InPlacePodVerticalScaling

它提供了从镜像构建(通过 Dockerfile)、镜像管理(上传、下载、存储等)、容器创建、运行、网络配置(可以为容器分配自定义的网络,如 bridge 网络、host 网络等)到容器编排(通过 Docker Compose 可以简单地编排多个容器的启动和关联关系)等一整套完整的解决方案。它的核心功能是启动和管理容器的生命周期。sudo apt update这个可以经常用,是来更新软件包的,它不下载,所以没风险,但是经常会报错,别问,问就是某种强大的力量,所以用镜像或者代理或者巴拉巴拉。

SsjjsS2019的博客 2553

数位dp 模板

参考 数位dp模板 能解决掉大部分常见的数位dp问题 typedef long long LL; const int maxn=22; int dig[maxn]; LL f[maxn]/* [TODO] */; LL dfs(int pos,/* TODO */,int limit){ if (pos<0) return /* TODO */; ...

anuancong1219的博客 176

解锁医疗AI密码:医疗人工智能专业大学四年学习路径

医疗AI人才培养路径解析 本文系统梳理了医疗人工智能专业四年培养方案,分为基础、进阶、应用和拓展四个阶段: 大一聚焦基础学科,涵盖高等数学、医学概论、Python编程等核心课程,辅以医学数据认知实习。大二深入机器学习和医学数据处理领域,学习监督/无监督学习算法及医学影像分析技术。大三进入深度学习阶段,掌握CNN/RNN等神经网络模型,并实践医疗AI应用开发。大四关注前沿技术如大模型在医疗中的应用,完成毕业设计与企业实习。 课程体系强调医工交叉,每学期均配置实践环节,从基础编程到参与真实医疗AI项目,逐步培养

AllenLV的博客 2501

[数位dp] 计数问题(模板题+数位dp)

文章目录0. 前言1. 数位dp 模板题 0. 前言 数位 dp 目前见的比较少,最为经典的莫过于不要62,或许以前都是暴力求解。例如求解 1~n 中,数字 x 出现的次数这类题,暴力枚举每个数的时间复杂度为 O(n)O(n)O(n),再枚举每一位的时间复杂度为 log10nlog_{10}^nlog10n​,数字一大妥妥超时。 值得一提的是,2020 的蓝桥杯,第一道签到题就是暴力做法… 1. 数位dp 模板题 338. 计数问题 重点: 数位 dp、分情况讨论 问题分析及抽象: 该问题实际上是需要求

Y-puyu 的博客 1016

海洋CMS admin_notify.php 远程代码执行漏洞复现(CVE-2024-30565)

海洋CMS admin_notify.php 接口处存在远程代码执行漏洞,经过身份验证的远程攻击者可利用该漏洞执行任意代码,写入后门文件,进而控制整个web服务器。

0xSec 2713

OpenOCD入门到精通:第 1 章 OpenOCD 概述

OpenOCD是一款开源的片上调试工具,支持60+调试适配器和8大处理器架构。它提供三大核心功能:片上调试、在系统编程和边界扫描测试。作为嵌入式开发工具链的中间桥梁,OpenOCD连接上层IDE/GDB与底层硬件,采用分层架构设计实现硬件兼容性。其配置基于Tcl脚本语言,支持网络服务接口,广泛应用于ARM、RISC-V等芯片的调试与烧录场景。

从事嵌入式linux android驱动开发,拥有全栈能力 1400

数位dp总结之从入门到模板

数位dp总结之从入门到模板转载至@wust_wenhao基础篇实战篇例一:HDU 2089 不要62第二:相减。然后就是一些需要自己yy的题:新的领域--计数转求和 转载至@wust_wenhao https://blog.youkuaiyun.com/wust_zzwh/article/details/52100392 基础篇   数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条...

rp++ 517

YOLO26 改进 - 注意力机制 | Mask Attention掩码注意力,可学习掩码矩阵破解低分辨率特征提取难题 | 2025 预印

本文提出了用于低分辨率图像分割的MaskAttn - UNet框架,并将其核心的掩码注意力机制集成到YOLO26中。传统U - Net类模型难以捕捉全局关联,Transformer类模型计算量大,而掩码注意力机制通过可学习的掩码,让模型选择性关注重要区域,融合了卷积的局部效率和注意力的全局视野。其工作流程包括特征适配、掩码生成、定向注意力计算和特征融合。我们将掩码注意力机制代码集成到YOLO26中。

魔改工程师的博客 835

数位dp的简单模板

摘自https://blog.youkuaiyun.com/wust_zzwh/article/details/52100392 typedef long long ll; int a[20]; ll dp[20][state];//不同题目状态不同 ll dfs(int pos,/*state变量*/,bool lead/*前导零*/,bool limit/*数位上界变量*/)//不是每个题都要...

weixin_30852419的博客 65

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

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

数位dp从会打模板到不会打模板

打了几个数位$dp$,发现自己除了会打模板之外没有任何长进,遇到非模板题依然什么都不会 那么接下来这篇文章将介绍如何打模板(滑稽) 假设我们要处理$l----r$ 采用记忆化搜索的方式,枚举$<=r$每一种情况,枚举每一位,然后再枚举$<=l-1$每一种情况,然后两个值相减即可 我们可以比较轻松打出一个模板 ll dfs(ll x,ll pre,ll lead,...

weixin_30484739的博客 90

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数位DP模板 & 泛做

参考资料 数位DP入门 数位dp总结 之 从入门到模板 一些个人理解&需要注意的地方: 数位dp中状态的选择与1~len位无关,是len+1~cnt位上的数字所共同决定的状态,正因为这样才可以在状态相同的情况下重复利用len位数字所产生的答案。 记忆化搜索时使用-1或单独开一个bool数组来标记当前状态是否被计算过,用0的话复杂度某些情况下不太对,会TLE。 是否需要lead来标记前...

Bakapiano 225

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【数位DP模板】

我发现别人的数位DP都是记忆化搜索的,而且不用每次memset,于是在网上找了个模板,很精妙 http://blog.youkuaiyun.com/just_sort/article/details/52169718

Lhq 314

hdu 4389 数位DP 模板化代码 结合记忆化搜索优化

数位DP

QZQ 1146

数位DP入门+数位DP模板

数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦! 之所以要引入数位的概念完全就是为了dp。数位dp的实质就是换一种暴力枚举的方式,使得新的枚举方式满足dp的性质,然后记忆化就可以了。 两种不同的枚举:对...

receiling的博客 1万+
上一篇: HRBUST - 2382 极难的问题 【数位dp + 二分】
下一篇: POJ 2115 C Looooops 【扩展欧几里得】
Y390d
博客等级 码龄9年 11粉丝 165原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值