dp 凸优化

时间有点仓促,过几天会补。
来自 czz 学长的课,SMWC -> Day4

目录

  • 凸函数介绍
  • WQS二分
    • 1. P2619【国家集训队 2】Tree I
    • 2. CF739E Gosha is hunting
  • 闵可夫斯基和
    • 1. QOJ-5421 Factories Once More
    • 2. GD 省集 tower
  • Slope Trick
    • 1. CF713C
    • 2. ABC217H
    • 3. [APIO2016] 烟火表演
  • 总结

凸函数介绍

凸函数即为一阶导单调的函数,在 OI 中通常体现为差分后单调的函数。这类具有凸性的问题在最优化问题中十分常见,通常具有其对应的线性规划或者费用流模型,也通常使用反悔贪心或者模拟费用流等方法解决。


WQS二分

详见 this 。
有一类问题,通常具有“选择恰好 k k k 个”的标志,但是在 d p dp dp 状态中记录 k k k 复杂度又太高,此时通常使用 WQS二分 解决。
WQS二分 使用的前提为问题关于选择个数 k k k 具有凸性。

1. P2619【国家集训队 2】Tree I

模板题

2. CF739E Gosha is hunting

凸性还可以联系到网络流,比如这题。
建立网络流模型,然后模拟网络流做法。 O ( n l o g n ) O(nlogn) O(nlogn)


闵可夫斯基和

( m i n , + ) (min, +) (min,+) ( m a x , + ) (max, +) (max,+) 卷积是常见的凸函数卷积,不难证明两个凸函数经过这样的卷积之后仍然是凸函数。(且这样的卷积常见于背包)
闵可夫斯基和常与分治等手段结合。

( m a x , + ) (max,+) (max,+) 卷积: f ( i ) = m a x j + k = i ( g ( j ) + h ( k ) ) f(i) = max_{j+k=i} (g(j) + h(k)) f(i)=maxj+k=i(g(j)+h(k))

1. QOJ-5421 Factories Once More

考虑 树形dp,设 f u , i f_{u,i} fu,i 表示 u u u 子树内选了 i i i 个点的最大值。容易得到 d p dp dp 转移方程, f u , i = m a x j + k = i f u , j + f v , k + j × k × w ( u , v ) f{u,i} = max_{j+k=i} f_{u,j} + f_{v,k} + j \times k \times w(u, v) fu,i=maxj+k=ifu,j+fv,k+j×k×w(u,v)
发现为凸函数,可以通过 ( m a x , + ) (max,+) (max,+) 卷积做成闵可夫斯基和的形式,进行加速 d p dp dp

2. GD 省集 tower

不会。
用闵可夫斯基和可以做到 O ( n l o g n ) O(nlogn) O(nlogn) ,但是分类讨论的常数可达 81 81 81 倍。


Slope Trick

Slope Trick 是一种优化 d p dp dp 的方法。核心思想是储存 d p dp dp 转移的关键信息(如分段函数的分界点)然后利用数据结构高效维护转移。
例如凸函数,我们只需维护初始的斜率,初始的值和斜率的变化点即可。
常见的维护操作有:函数相加,找最值,加一个一次函数,取前后缀max,平移,翻转等。

1. CF713C

经典模板题。

2. ABC217H

弄一个暴力 d p dp dp ,设 f i , j f_{i,j} fi,j 表示 T i T_i Ti 时刻角色在 j j j 可能的最小伤害,转移就枚举上一次在哪:
f i , j = m i n j k + l e n = j − l e n f i − 1 , k + [ ( j > X i ) = D i ] × ∣ j − X fi,j = minjk+len=j−lenfi−1,k + [(j > Xi) = Di] × |j − X fi,j=minjk+len=jlenfi1,k+[(j>Xi)=Di]×jX
事件的贡献是一个下凸函数,发现转移是一个先平移后加一个下凸函数的形式,不难验证仍然 fi 仍然是一个下凸函数。考虑用两个堆分别维护拐点。由于是下凸函数,则最小值的左边是单调递减,最小
值的右边是单调递增。则只需把维护最小值左边的拐点位置统一减去 len,最小值右边的拐点位置统一加上 len 即可。加上的函数很明显拐点只有一个 Xi,插入拐点然后维护堆的大
小即可。

3. [APIO2016] 烟火表演

又不会。

总结

===

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

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

相关文章

Linux(LAMP)

赛题拓扑: 题目: 安装WEB服务。 服务以用户webuser系统用户运行。 限制WEB服务只能使用系统500M物理内存。 全站点启用TLS访问,使用本机上的“CSK Global Root CA”颁发机构颁发,网站证书信息如下: C CN ST China…

vue3+elementPlus之后台管理系统(从0到1)(day3-管理员管理)

管理员管理 搭建管理员页面 在views中创建一个manager文件夹&#xff0c;并创建ManagerIndexView.vue、MangagerListView.vue、UserList.vue <!-- src/views/manager/ManagerIndexView.vue --> <template><!-- 作为一个占位符&#xff0c;用于渲染与当前 URL…

CSRF漏洞学习总结

一、什么是CSRF漏洞&#xff1f; CSRF&#xff08;Cross-Site Request Forgery&#xff0c;跨站请求伪造&#xff09;是一种网络攻击&#xff0c;它利用受害者在受信任网站上的已认证会话&#xff0c;来执行非预期的行动。这种攻击的核心在于&#xff0c;攻击者能够诱使受害者…

前端Vue2项目使用md编辑器

项目中有一个需求&#xff0c;要在前端给用户展示内容&#xff0c;内容有 AI 生成的&#xff0c;返回来的是 md 格式&#xff0c;所以需要给用户展示 md 格式&#xff0c;并且管理端也可以编辑这个 md 格式的文档。 使用组件库 v-md-editor。 https://code-farmer-i.github.i…

【JDBC】数据库连接的艺术:深入解析数据库连接池、Apache-DBUtils与BasicDAO

文章目录 前言&#x1f30d; 一.连接池❄️1. 传统获取Conntion问题分析❄️2. 数据库连接池❄️3.连接池之C3P0技术&#x1f341;3.1关键特性&#x1f341;3.2配置选项&#x1f341;3.3使用示例 ❄️4. 连接池之Druid技术&#x1f341; 4.1主要特性&#x1f341; 4.2 配置选项…

Codeforces Round 1000 (Div. 2)(前三题)

A. Minimal Coprime 翻译&#xff1a; 如果 l 和 r 互为同素数&#xff0c;则正整数 [l,r] 的一段称为同素段。 如果一个共素数段 [l,r] 不包含任何不等于它本身的共素数段&#xff0c;那么这个共素数段 [l,r] 就叫做最小共素数段。为了更好地理解这句话&#xff0c;可以参考注…

数据库事务详解

事务-1-数据库事务 今天聊一聊数据库的事务&#xff0c;这里以MySQL为例子。 在MySQL中&#xff0c;事务&#xff08;Transaction&#xff09;是一组SQL操作的集合&#xff0c;这些操作要么全部成功执行&#xff0c;要么全部失败回滚&#xff0c;确保数据的一致性和完整性。事…

攻防世界GFSJ1012 pwnstack

题目编号&#xff1a;GFSJ1012 附件下载后是一个c和库文件&#xff1a; 获取在线场景是 1. 获取伪代码 Exeinfo打开pwn2&#xff0c;分析如图&#xff0c;64位。 IDA Pro(64-bit)打开pwn2&#xff0c;生成伪代码 2. 分析代码漏洞 /* This file was generated by the Hex-Rays …

最小距离和与带权最小距离和

1. 等权中位数 背景&#xff1a; 给定一系列整数&#xff0c;求一个整数x使得x在数轴上与所有整数在数轴上的距离和最小。 结论&#xff1a; 这一系列的整数按顺序排好后的中位数(偶数个整数的中位数取 n 2 或 n 2 1 \frac{n}{2}或\frac{n}{2}1 2n​或2n​1都可)一定是所求点…

【LeetCode 刷题】栈与队列-队列的应用

此博客为《代码随想录》栈与队列章节的学习笔记&#xff0c;主要内容为队列的应用相关的题目解析。 文章目录 239. 滑动窗口最大值347. 前 K 个高频元素 239. 滑动窗口最大值 题目链接 class Solution:def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]…

【优选算法】5----有效三角形个数

又是一篇算法题&#xff0c;今天早上刚做的热乎的~ 其实我是想写博客但不知道写些什么&#xff08;就水一下啦&#xff09; -------------------------------------begin----------------------------------------- 题目解析: 这道题的题目算是最近几道算法题里面题目最短的&a…

Golang:使用DuckDB查询Parquet文件数据

本文介绍DuckDB查询Parquet文件的典型应用场景&#xff0c;掌握DuckDB会让你的产品分析能力更强&#xff0c;相反系统运营成本相对较低。为了示例完整&#xff0c;我也提供了如何使用Python导出MongoDB数据。 Apache Parquet文件格式在存储和传输大型数据集方面变得非常流行。最…

HTTP 配置与应用(局域网)

想做一个自己学习的有关的csdn账号&#xff0c;努力奋斗......会更新我计算机网络实验课程的所有内容&#xff0c;还有其他的学习知识^_^&#xff0c;为自己巩固一下所学知识&#xff0c;下次更新HTTP 配置与应用&#xff08;不同网段&#xff09;。 我是一个萌新小白&#xf…

免费!无水印下载!

软件介绍 这个工具可方便啦&#xff0c;不管是小红书上那些时尚的美照&#xff0c;还是特别搞笑的视频&#xff0c;只要你想下载&#xff0c;轻轻一点就能保存。真的是实现了一键下载&#xff0c;完全没有复杂的操作。下载下来的内容会智能分类呢。这样的话&#xff0c;你的资源…

第二届国赛铁三wp

第二届国赛 缺东西去我blog找&#x1f447; 第二届长城杯/铁三 | DDLS BLOG web Safe_Proxy 源码题目 from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp Flask(__name__)app.route(/, methods"GET"])de…

【深度学习】嘿马深度学习笔记第11篇:卷积神经网络,学习目标【附代码文档】

本教程的知识点为&#xff1a;深度学习介绍 1.1 深度学习与机器学习的区别 TensorFlow介绍 2.4 张量 2.4.1 张量(Tensor) 2.4.1.1 张量的类型 TensorFlow介绍 1.2 神经网络基础 1.2.1 Logistic回归 1.2.1.1 Logistic回归 TensorFlow介绍 总结 每日作业 神经网络与tf.keras 1.3 …

STranslate 中文绿色版即时翻译/ OCR 工具 v1.3.1.120

STranslate 是一款功能强大且用户友好的翻译工具&#xff0c;它支持多种语言的即时翻译&#xff0c;提供丰富的翻译功能和便捷的使用体验。STranslate 特别适合需要频繁进行多语言交流的个人用户、商务人士和翻译工作者。 软件功能 1. 即时翻译&#xff1a; 文本翻译&#xff…

缓存之美:万文详解 Caffeine 实现原理(下)

上篇文章&#xff1a;缓存之美&#xff1a;万文详解 Caffeine 实现原理&#xff08;上&#xff09; getIfPresent 现在我们对 put 方法有了基本了解&#xff0c;现在我们继续深入 getIfPresent 方法&#xff1a; public class TestReadSourceCode {Testpublic void doRead() …

GPT 结束语设计 以nanogpt为例

GPT 结束语设计 以nanogpt为例 目录 GPT 结束语设计 以nanogpt为例 1、简述 2、分词设计 3、结束语断点 1、简述 在手搓gpt的时候&#xff0c;可能会遇到一些性能问题&#xff0c;即关于是否需要全部输出或者怎么节约资源。 在输出语句被max_new_tokens 限制&#xff0c…

HackTheBox靶机:Sightless;NodeJS模板注入漏洞,盲XSS跨站脚本攻击漏洞实战

HackTheBox靶机&#xff1a;Sightless 渗透过程1. 信息收集常规探测深入分析 2. 漏洞利用&#xff08;CVE-2022-0944&#xff09;3. 从Docker中提权4. 信息收集&#xff08;michael用户&#xff09;5. 漏洞利用 Froxlor6. 解密Keepass文件 漏洞分析SQLPad CVE-2022-0944 靶机介…