₯ 特训

news/2025/2/8 19:04:33/文章来源:https://www.cnblogs.com/wxir/p/18705018

https://www.luogu.com.cn/training/641872 和 「CodeChef」Mex Subsequence。

看似 DP 特训,实则 DS 特训。

优先考察性质,否则后果参考 S-T3。

技巧一

以 「CEOI2016」kangaroo 为例。

价值两个脆香米的好题。

考虑将 \(1 \sim n\)\(n\) 个数按顺序从小到大插入,这样已在序列中的都比当前数小,将要插入序列中的都比当前数大。

发现转移时就只与当前的连续段个数相关。

而为了保证方案合法,还需要使得每个连续段都是形如 M 形,才能保证之后加入的可以新开连续段或合并两段。

可以线性。

技巧二

以 「POI2013」LUK-Triumphal arch 为例。

神秘博弈论。

这种选点的好像都要二分。

技巧三

以 「CEOI2017」Chase 为例。

提到树上路径相关问题的两种思考方式:枚举 LCA 和枚举端点。

还有一个是点分治。

寄巧四

以 「CF1476F」Lanterns 为例。

*3000 题当然有 *3000 的做法。

考察打开 \([1, i]\) 的灯笼后,照亮的区域是 \([1, i]\) 中的某些点和 \([i + 1, n]\) 的一段前缀。而 \([i + 1, n]\) 的灯笼打开后在 \([1, i]\) 中照亮的是一段后缀。

因此设 \(f_{i, j}\) 表示打开 \([1, i]\) 的灯笼后在保证 \([1, j]\) 的区域被照亮的情况下最远可以照到的范围是 \([i + 1, f_{i, j}]\),若不能保证 \([1, j]\) 被照亮则为 \(-\infin\)

不难发现当 \(i\) 一定时,\(f_{i, j}\)\(j\) 的增大而减小。

转移时,如果第 \(i\) 个灯笼向右,那么转移为:

\(f_{i, j} \gets \max(f_{i - 1, j}, i + p_i)(f_{i - 1, j} > -\infin)\)

\(f_{i, i} \gets \max(f_{i - 1, i - 1}, i + p_i)(f_{i - 1, i - 1} \ge i)\)

因为只有当可以将 \([1, i - 1]\) 覆盖完时第 \(i\) 个灯笼才可能向左,所以有:

\(f_{i, j} \gets f_{i, i - 1} \gets f_{i - 1, i - p_i - 1}(f_{i - 1, i - p_i - 1} > -\infin)\)

\(f_{i, i} \gets f_{i - 1, i - p_i - 1}(f_{i - 1,i - p_i - 1} \ge i)\)

具体实现上用线段树维护 \(f\),每次修改的都是一段区间。

虽然这个做法确实是依托,但是确实体现了常规 DP 的一种思路:

  1. 阶段:将问题划分为若干阶段,阶段间存在一定顺序。

  2. 状态:当前阶段中会对后续决策产生影响的信息。

  3. 转移

  4. 优化:优化状态和数据结构优化转移。两者本质是一样的,

技巧五

以 「CF1152F2」Neko Rules the Catniverse (Large Version) 为例。

插入 DP。依然是插入的同时保证一定的大小关系。

注意到 \(m\)\(k\) 都很小,所以可以设进状态里。

再注意到转移不变且 \(n\) 很大,所以进行一个矩阵的快速幂。

技巧六

以 「BZOJ4665」小 w 的喜糖 为例。

容斥。

抛开题目不谈,先证一遍二项式繁衍。

你知道为什么容斥系数是 -1、1、-1、1 吗?

—— Just_int_mian

首先,有二项式定理 \((a + b)^n = \sum\limits_{i = 0}^n C_n^i a^i b^{n - i}\)

然后,取 \(a = -1, b = 1\),得 \(\sum\limits_{i = 0}^n (-1)^i C_n^i = [n = 0]\)

\(g_n = \sum\limits_{i = 0}^n (-1)^i C_n^i f_i\)

则有

\[\begin{aligned}& \sum\limits_{i = 0}^n (-1)^i C_n^i g_i \\= & \sum\limits_{i = 0}^n (-1)^i C_n^i \sum\limits_{j = 0}^i (-1)^j C_i^j f_j \\= & \sum\limits_{i = 0}^n \sum\limits_{j = 0}^i (-1)^i (-1)^j C_n^i C_i^j f_j \\= & \sum\limits_{i = 0}^n \sum\limits_{j = 0}^i (-1)^{i + j} C_n^j C_{n - j}^{i - j} f_j \\= & \sum\limits_{j = 0}^n \sum\limits_{i = j}^n (-1)^{i + j} C_n^j C_{n - j}^{i - j} f_j \\= & \sum\limits_{j = 0}^n C_n^j f_j \sum\limits_{i = j}^n (-1)^{i + j} C_{n - j}^{i - j} \\= & \sum\limits_{j = 0}^n C_n^j f_j \sum\limits_{i = 0}^{n - j} (-1)^{(i + j) + j} C_{n - j}^{(i + j) - j} \\= & \sum\limits_{j = 0}^n C_n^j f_j \sum\limits_{i = 0}^{n - j} (-1)^i C_{n - j}^i \\= & \sum\limits_{j = 0}^n C_n^j f_j [n = j] \\= & f_n \\\end{aligned} \]

所以 \(g_n = \sum\limits_{i = 0}^n (-1)^i C_n^i f_i \iff f_n = \sum\limits_{i = 0}^n (-1)^i C_n^i g_i\)

\(g'_n = (-1) ^ n g_n\),则 \(g_n = (-1) ^ n g'_n\)

则有

\[\begin{aligned}g'_n = & (-1) ^ n \sum\limits_{i = 0}^n (-1)^i C_n^i f_i\\= & \sum\limits_{i = 0}^n (-1)^{n - i} C_n^i f_i \\f_n = & \sum\limits_{i = 0}^n (-1)^i C_n^i (-1) ^ i g'_i\\= & \sum\limits_{i = 0}^n C_n^i g'_i \\\end{aligned} \]

所以 \(f_n = \sum\limits_{i = 0}^n C_n^i g'_i \iff g'_n = \sum\limits_{i = 0}^n (-1)^{n - i} C_n^i f_i\)

然后还有一种更常用的写法,即 \(f_i = \sum\limits_{j = i}^n C_j^i g_j \iff g_i = \sum\limits_{j = i}^n (-1) ^ {j - i} C_j^i f_j\)

这样 \(f_i\) 表示钦定(不是至少)选 \(i\) 个的方案数,\(g_i\) 表示恰好选 \(i\) 个的方案数。

总结总结

因为万物起源 DP,所以 DP 并没有什么共同点,没什么好总结的。

因为 DP 只是一种工具,所以更应该注重思维的提升,没什么好总结的。

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

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

相关文章

尝试使用阿里云计算巢部署 DeepSeek-R1

记录一下用阿里云计算巢部署 DeepSeek-R1 的经过。进入阿里云计算巢控制台的服务目录,选择 DeepSeek 社区版,点击「开始部署」,选择最便宜的 ECS 实例 GRID 虚拟化4核30G,费用是 1.748/小时。点击「立即创建」,然后控制台会显示正在部署的状态。部署完成后,控制台会显示公…

未来已来:云手机+AI如何重塑Facebook、Google的智能营销生态

未来已来:云手机+AI如何重塑Facebook、Google的智能营销生态 在数字化浪潮奔涌的当下,科技融合正以令人惊叹的速度重塑各个行业,智能营销领域更是首当其冲。云手机与AI自动化工具的深度融合,为Facebook、Google构建的庞大智能营销生态带来了颠覆性的变革,开拓出全新的发展…

Burp Suite 2024激活汉化

转载自https://blog.csdn.net/m0_52985087/article/details/140299827 前言在项目即将上线阶段,迈入生产环境之际,确保其安全性成为我们不可忽视的首要任务。为筑起一道坚不可摧的安全防线,我们借助业界公认的网络安全利器——Burp Suite,我们将展开一场全面的安全测试,旨…

清华权威出品!104页《DeepSeek从入门到精通》免费领,解锁AI时代的核心竞争力!

引言: 在AI技术席卷全球的今天,如何高效驾驭大模型工具已成为个人与企业脱颖而出的关键。清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室余梦珑博士后团队倾力打造的《DeepSeek从入门到精通》电子书重磅发布!全书104页,从基础操作到高阶技巧,手把手教你玩转国产顶…

win11家庭中文版登录应用提示:“为了对电脑进行保护,已经阻止此应用”

1.家庭中文版组策略里面禁用:以管理员批准模式运行所有管理员 win11打不开组策略,需要复制文本内容到记事本,修改为bat后缀执行 @echo off pushd "%~dp0" dir /b c:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum …

4种比常见的线程池和线程同步买票问题

线程池 所谓的线程池:其实就是线程对象的容器。 可以根据需要,在启动时,创建1个或者多个线程对象。 java中有4种比较常见的线程池。 1.固定数量的线程对象。 2.根据需求动态创建线程:动态创建线程:根据需求来创建线程的个数,会自动给我们分配合适的线程个数来完成任务。 3.…

12. Makefile文件

一、什么是Makefile文件Makefile 文件时一种用于管理和自动化软件编译过程的文本文件。它通常包含了一系列规则,这些规则描述了如何根据源代码文件生成可执行文件或者其它目标文件。Makefile 的核心概念是规则和依赖关系,规则定义了如何生成一个或多个目标文件,而依赖关系则…

busybox 设置登录用户名及密码

1、配置 busybox2、替换新的 /bin/busybox,建立 /bin/login、/sbin/getty 软链接ln -sf /bin/busybox ./bin/login ln -sf /bin/busybox ./sbin/getty3、设置 /etc/inittab 不需要登录:ttyS0::respawn:/bin/ash -l -i需要登录:ttyS0::respawn:/sbin/getty 115200 ttyS04、设…

DoIP 协议详解

转载:车载以太网DoIP 协议,万字长文详解_doip协议-CSDN博客 一、前言 DoIP(Diagnostic Communication over Internet Protocol) 协议是一种用于汽车诊断通信的协议,它允许通过IP网络(如以太网)进行诊断操作。 DoIP协议的设计初衷是为了解决传统基于CAN (Controller Area N…

2025:白手起家,两娃的爸准备创业

前言 2024年陆陆续续听到老东家几个同事被裁的消息,倒有些后悔2023年自己主动提出离职,结束北漂回老家。算了下,损失个小几十万。 2024年6月份来了一场彻彻底底的自我反思,找不到明确目标,于是稀里糊涂定了两个计划:每天读书,围绕技术、文学、创业类。 粉丝数涨到150。工…

【Java Mail】 使用java mail发送邮件

465端口和587端口差异对比可参考:https://liaoxuefeng.com/books/java/spring/integration/javamail/index.html特别注意写在最前面:1.SMTP邮箱服务 有两个端口SMTP 端口号(SSL)465 SMTP 端口号(starttls)587所以,在发送邮件时,一定要注意 不同端口,配置Properties细节…