首页 > 其他分享 >[DP] 数位DP

[DP] 数位DP

时间:2024-07-14 09:08:32浏览次数:14  
标签:gcd int long st limit DP 数位

本文主要内容:数位DP例题

数位DP

主要有两种方法,填数法和记搜。这里主要研究记搜的实现;

模板

相比于填数法,记搜的优点在于有固定的模板,实现较容易;

缺点在于需要很多 $ memset $,常数较大,容易被卡;

下面通过几道例题来了解记搜模板;

一 $ haha $ 数

image

设记搜各参数如下:

long long dfs(int x, int gcd, bool limit, int st)

$ gcd $ 代表各位数字的最小公倍数,$ limit $ 代表当前位有没有到达最高位限制,$ st $ 代表现在的数 $ mod \ 2520 $ 的结果($ 2520 $ 是数字$ 1 \ to \ 9 $ 的和);

$ gcd $ 可以离散化($ 2520 $ 的因数最多只有不到 $ 50 $ 个);

long long dfs(int x, int gcd, bool limit, int st) {
	if (x > cnt) return st % gcd == 0;
	if (!limit && f[cnt - x + 1][vis[gcd]][st] != -1) return f[cnt - x + 1][vis[gcd]][st];
	int res = limit ? a[cnt - x + 1] : 9; //判断现在的限制;
	long long ret = 0;
	for (register int i = 0; i <= res; i++) {
		if (i == 0) ret += dfs(x + 1, gcd, limit && i == res, st * 10 % mod); //特判0;
		else ret += dfs(x + 1, gcd * i / __gcd(gcd, i), limit && i == res, (st * 10 + i) % mod);
	}
	return limit ? ret : f[cnt - x + 1][vis[gcd]][st] = ret;
}

也是水了一篇

标签:gcd,int,long,st,limit,DP,数位
From: https://www.cnblogs.com/PeppaEvenPig/p/18301098

相关文章

  • DP优化技巧-斜率优化(基础版)
    DP优化技巧-斜率优化(基础版)基本思路:1.寻找出暴力DP转移方程式。例子:f[i]=min{f[j]+v[i]+v[j]+val(i,j)}2.将方程式写成y=kx+b的形式,其中b为与i相关的项,y为与j相关的项,kx对应的是val(i,j)项,其中x对应的的是与j相关的,k对应的是与i相关的以及常数。例子:假设有转移方程f[i]=min{f[......
  • zdppy+onlyoffice+vue3解决文档加载和文档强制保存时弹出警告的问题
    解决过程第一次排查最开始排查的是官方文档说的https://api.onlyoffice.com/editors/troubleshooting#key解决方案。参考的是官方的https://github.com/ONLYOFFICE/document-server-integration/releases/latest/download/Python.Example.zip基于Django的Python代码。......
  • DP
    SparkSpecialdottle_dpnote解决问题:分析问题性质转化问题用熟悉方法解决要记住OI不是要你发明算法,只是要找方法!"让我们揭露dp的本质"1容斥容斥是一种很重要的思想,容斥的目标是转化问题。虽然,我们看似将问题转化复杂了,但是每一个子集的计算却变简单了(不必......
  • NOIP DP
    NOIPDP本章选用题目重做的方法进行复习会选择有价值的题目重做1.数位DPP2602数字计数Trick典型转换:前缀和转换通过从高到第枚举数字的方法进行统计。这是很常见的限制数字范围的方法。P4127同态分布所以数位DP开始推导的时候通常是从暴力开始的,开始的时候就是枚举......
  • TCP与UDP
    TCP(TransmissionControlProtocol)什么是TCP?TCP是一种面向连接的、可靠的传输层协议,用于在计算机网络中传输数据。它确保数据能够按照发送顺序到达目的地,并且不丢失,确保了数据的完整性和顺序性。详细解释:TCP在传输数据之前,首先在发送端和接收端之间建立连接。这个连接是通过......
  • ThreadPoolExector
    JavaThreadPool使用线程池的好处:减少资源的浪费:创建、销毁、切换线程需要消耗系统资源,通过使用线程池可以降低消耗。增加可管理度:通过线程池的同一管理,能够实现线程的更好的管理。提高相应速度:当任务到来时,无需在创建线程,直接就能对任务进行反馈Java线程池的使用线程池......
  • 课程设计——基于Matlab的LDPC编解码算法实现及LDPC码性能测试
    本项目适合做计算机相关专业的毕业设计,课程设计,技术难度适中、工作量比较充实。完整资源获取点击下载完整资源1、资源项目源码均已通过严格测试验证,保证能够正常运行;2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;3、本项目比较适合计算......
  • rsyslog配置(服务端、客户端)-UDP-TCP转发-imfile自定义应用程序的日志推送
    ##概念#Syslog服务器可以用作一个网络中的日志监控中心,所有能够通过网络来发送日志的设施(包含了Linux或Windows服务器,路由器,交换机以及其他主机)都可以把日志发送给它。通过设置一个syslog服务器,可以将不同设施/主机发送的日志,过滤和合并到一个独立的位置,这样使得你更容易地查......
  • WordPress给网站右侧边栏添加百度一下协助SEO优化
    前言大家在做网站的时候,seo会是一个问题,我们可以让用户在浏览我们网站的时候协助我们seo废话不多说,先看一下成品是什么样子的吧!效果演示作用这个小工具可以协助网站优化百度SEO,让用户在浏览我们网站的时候协助我们seo,最早是在emlog程序才有的,现在WordPress程序也是......
  • 在Linux中,我们都知道,dns采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么 时候采
    DNS(DomainNameSystem)确实既使用UDP协议也使用TCP协议,这是因为不同的DNS操作有不同的需求和优化目标。1.UDP协议的使用DNS主要使用UDP协议,这是由于UDP的无连接性质和较低的开销。以下是使用UDP的一些情况及其原因:标准查询:何时使用:对于大多数DNS查询,特别是常见的域名解......