[DP] 数位DP

news/2024/9/19 15:46:33/文章来源:https://www.cnblogs.com/PeppaEvenPig/p/18301098

本文主要内容:数位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;
}

也是水了一篇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/743405.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库的触发器的使用

需要实现在passenger中添加乘客信息后,在classes(班次)中对应舱位的已售出票数+1例:在passenger中添加了一个degree=“头等舱”的乘客,就在classes中对应头等舱已售出票数goodnumber+1 (经济舱类似,对应secondnumber+1实现方法: 在passenger表中增加触发器,在新增pa…

【比赛】CSP提高组模拟1

挂的分比我打的都多和初三学长们一起打的比赛,被人家爆杀了。 T1 最短路 20Pts 原题 Cow Toll Paths G。 正解是按点权排序后跑一遍 Floyd,歪解是多迭代几遍。 赛时没开 long long \(80 \to 20\)。点击查看代码 #include<bits/stdc++.h> #define int ll using namespa…

トヨタ自動車プログラミングコンテスト2024#7(ABC 362)

非常好名次,使我的 \(1\) 旋转 四发罚时应该是这次比赛最唐的东西了,没有就进前一千了 A.Buy a Pen 特判秒了,懒得打三种 ans=,所以就把不能选的那个赋值成无穷大了 #include<bits/stdc++.h> using namespace std; #define speed ios::sync_with_stdio(false); #defi…

领域驱动设计:CQRS 和事件源的强大功能

CQRS/ES 如何重新定义构建可扩展系统。 在过去的 15 年里,我一直在深入研究领域驱动设计 (DDD),每一步都在学习和改进。我一直很好奇,尤其是当你深入挖掘时,简单的客户请求会变得更加复杂。我特别感谢EventStorming这样的工具,它帮助揭示看似简单需求背后的真实流程和事件…

k8s简介

一、K8S 概览 1)K8S 是什么? K8S 是Kubernetes的全称,源于希腊语,意为“舵手”或“飞行员”,官方称其是:用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。翻译成大白话就是:“K8S 是负责自动化运维管理多个跨机器 Docker 程序的集群”。 2) K…

flutter Error: unable to locate asset entry in pubspec.yaml: assets/fonts/Lato-Regular.ttf

在pubspec.yaml中添加font的时候出现这个问题 发现是因为我放的文件夹不对,需要放在根目录下(但是我不知道为什么android studio里没有显示一些文件夹) 本来放在这里 一直不对后来在文件夹找了一下放到lib里 新建了assets文件夹

详解工单系统

工单系统在人类早期的行为活动中就一直存在的理念,是人类关于工作流程的管理和记录。随着计算机软件的不断发展,工单系统由线下转为线上,提升了问题传达的准确性、处理效率以及数据的长久留痕可追溯等,应用领域也日渐广泛。本文将着重介绍工单的概念、不同领域工单系统简介…

Vue 3 后端错误消息处理范例

前端如何存储处理后端返回的错误信息,并按不同来源绑定到页面,例如显示在不同输入框的周围。这样即可实现清晰的错误显示。1. 错误消息格式 前后端消息传递时,我们可以通过 json 的 errors 字段传递错误信息,一个比较好的格式范例为: {errors: {global: ["网络错误&q…

OpenDiary 24.7

致敬传奇耐拖王现在是,7 月 13 日。距离上一次写日记过去了 58 天 致敬传奇耐拖王 xiwon那么,在鼠鼠肘赢牢大之前的这段时间,what happened, on earth?五月下旬,前去了西安邀请赛,打的一坨。回来之后写了一点游记,但是居然还没有写完 那么到底为什么没有写完呢?这要从很…

我用cpca 截取地址中的省市区,突然就乱了,这是什么原因

大家好,我是Python进阶者。 一、前言 前几天在Python钻石交流群【逆光】问了一个Python数据处理的问题,问题如下:请问一下 我用cpca 截取地址中的省市区,突然就乱了,这是什么原因? 二、实现过程 这里【瑜亮老师】给了个思路如下:看着好像是行弄乱了。 【不上班能干啥!】…