凸性相关问题
内容大致上包括:
- 四边形不等式,决策单调性
- 闵可夫斯基和优化 d p dp dp
- slope trick 优化 d p dp dp
- 其他凸性相关问题
决策单调性
1.1 一些约定
对于 n × m n\times m n×m 的矩阵 A A A,定义:
-
子矩阵 A [ i 1 , . . . , i p ] , [ j 1 , . . . , j q ] A_{[i_1,...,i_p],[j_1,...,j_q]} A[i1,...,ip],[j1,...,jq] 为矩阵中第 i 1 , . . . i p i_1,...i_p i1,...ip 行与 j 1 , . . . j q j_1,...j_q j1,...jq 列交点形成的矩阵
-
连续子矩阵,顾名思义
-
min ( A i ) \min(A_i) min(Ai) 表示第 i i i 行最小值的位置,若存在多个最小值取最左边
1.2 单调矩阵、蒙日矩阵与四边形不等式
-
单调矩阵: ∀ i < j , min ( A i ) ≤ min ( A j ) \forall i<j,\min(A_i)\leq \min(A_j) ∀i<j,min(Ai)≤min(Aj),即 决策单调性
-
完全单调矩阵: A A A 的任何一个子矩阵都是单调矩阵
Tip:能在题目中见到的单调矩阵几乎都是完全单调矩阵 -
蒙日矩阵:若 ∀ 1 ≤ i 1 ≤ i 2 ≤ n , 1 ≤ j 1 ≤ j 2 ≤ m \forall 1\leq i_1\leq i_2\leq n,1\leq j_1\leq j_2\leq m ∀1≤i1≤i2≤n,1≤j1≤j2≤m,均有 A i 1 , j 1 + A i 2 , j 2 ≤ A i 1 , j 2 + A i 2 , j 1 A_{i_1,j_1}+A_{i_2,j_2}\leq A_{i_1,j_2}+A_{i_2,j_1} Ai1,j1+Ai2,j2≤Ai1,j2+Ai2,j1,则称 A A A 满足 四边形不等式,同时称这样的矩阵为 蒙日矩阵
上面的条件其实等价于 A i , j + A i + 1 , j + 1 ≤ A i , j + 1 + A i + 1 , j A_{i,j}+A_{i+1,j+1}\leq A_{i,j+1}+A_{i+1,j} Ai,j+Ai+1,j+1≤Ai,j+1+Ai+1,j,本质上是二维差分
蒙日矩阵均为完全单调矩阵
这也说明了,若一个矩阵满足四边形不等式,那么它就有决策单调性
蒙日矩阵的一些基本性质:
- A T A^T AT 也为蒙日矩阵
- A + B A+B A+B 为蒙日矩阵
- λ A , λ > 0 \lambda A,\lambda>0 λA,λ>0 为蒙日矩阵
常见的蒙日矩阵
-
A x , y = min ( x , y ) A_{x,y}=\min(x,y) Ax,y=min(x,y)
-
A x , y = x y A_{x,y}=xy Ax,y=xy
-
A x , y = ∑ i = 1 x ∑ j = y m d i , j A_{x,y} = \sum_{i=1}^x\sum_{j=y}^md_{i,j} Ax,y=∑i=1x∑j=ymdi,j,其中 d i , j d_{i,j} di,j 为非负矩阵
这说明了:对于区间权值为 区间内符合某种性质的点对数量(权值)和的问题一定
具有决策单调性比如 逆序对,区间颜色数的平方
-
A x , y = [ x = k ] v k A_{x,y}=[x=k]v_k Ax,y=[x=k]vk,没见过,不知道有什么用
-
A x , y = f ( x − y ) A_{x,y}=f(x-y) Ax,y=f(x−y),其中 f f f 是下凸函数 十分有用 !!
1.3 例题
实际应用中还是有很多 trick 的
一般来说,实际应用中证明 猜 决策单调性的方法有两种: 反证法 ,四边形不等式
还有就是需要见过一些经典的模型
「雅礼集训 2017 Day5」珠宝 /「NAIPC2016」Jewel Thief
观察数据范围注意到 c c c 很小,肯定按这个做了
对于 c c c 相同的,显然按 v v v 从大到小选,贡献函数是凸的
容易写出转移:
d p c , j = max ( d p c − 1 , j − k c + F c , k ) dp_{c,j}=\max(dp_{c-1,j-kc}+F_{c,k}) dpc,j=max(dpc−1,j−kc+Fc,k)
按 m o d c \mathrm{mod}\ c mod c 分组会让 d p dp dp 更简洁
d p c , j = max ( d p c − 1 , j − k + F c , k ) dp_{c,j}=\max(dp_{c-1,j-k}+F_{c,k}) dpc,j=max(dpc−1,j−k+Fc,k)
显然是 ( m a x , + ) (max,+) (max,+) 卷积的形式,而且 F F F 也是凸的,那么闵和归并?
注意 d p dp dp 数组转移过程中并非凸的,因为不同的 c c c 的分组方式显然会影响凸性,那就不能闵和了
但是这种 非凸 与 凸 的 ( m a x , + ) (max,+) (max,+) 卷积是有 决策单调性 的
可以用蒙日矩阵来说明:
d p c , j = max ( d p c − 1 , k + F c , j − k ) dp_{c,j}=\max(dp_{c-1,k}+F_{c,j-k}) dpc,j=max(dpc−1,k+Fc,j−k),恰好符合 A x , y = f ( x − y ) A_{x,y}=f(x-y) Ax,y=f(x−y) 且 f f f 凸 这一推论
直接决策单调性,复杂度是 O ( K C ) O(KC) O(KC) 或者 O ( K C log ) O(KC\log) O(KClog)
GYM102586B1 Evacuation
好牛的题
首先设出来代价函数, f ( l , r , x ) f(l,r,x) f(l,r,x) 表示决策选在 x x x 时的最小代价,没什么性质,简化一下
一般决策单调性都是二元函数,所以尽可能往二元的形式上凑
容易发现根据 L i L_i Li 与 R i R_i Ri 的中点可以把决策分成两部分,左半部分是不需要考虑 R i R_i Ri 的限制的,右边同理
简化后:设 f ( s , i ) f(s,i) f(s,i) 表示决策在 s s s,端点为 i i i 的最小代价
发现这样就有决策单调性了,反证法容易证明
有个问题是这个题决策有区间限制,需要线段树上放询问后对每个结点分治处理
相关文章:
凸性相关问题
内容大致上包括: 四边形不等式,决策单调性闵可夫斯基和优化 d p dp dpslope trick 优化 d p dp dp其他凸性相关问题 决策单调性 1.1 一些约定 对于 n m n\times m nm 的矩阵 A A A,定义: 子矩阵 A [ i 1 , . . . , i p …...
WPS计算机二级•文档的文本样式与编号
听说这是目录哦 标题级别❤️新建文本样式 快速套用格式🩷设置标题样式 自定义设置多级编号🧡使用自动编号💛取消自动编号💚设置 页面边框💙添加水印🩵排版技巧怎么分栏💜添加空白下划线&#x…...
开源堡垒机 JumpServer 社区版实战教程:一步步构建企业安全运维环境
文章目录 开源堡垒机 JumpServer 社区版实战教程:一步步构建企业安全运维环境一、访问JumpServer1.1 登录1.2 功能模块1.3 系统设置1.3.1 基本设置1.3.2 邮件设置 二、用户管理2.1 场景2.2 创建用户2.3 用户登录密码重置 三、资产管理3.1 准备工作3.2 登录控制台3.3…...
二、数据类型、运算符
1. 数据的表示详解 1.1 算术运算符 整数在计算机中的存储原理先从最基本的算术运算符开始学习,算术运算符有 - * / % ,其中*表示乘法,/表示除法,%表示取余数 需要我们注意以下几点 /: 两个整数相除,结果也是一个…...
结构形模式---桥接模式
概念 桥接模式是一种结构化模式,是将一个大类或者一系列的紧密相关的类拆分为抽象和现实两个独立部分的层次结构,通过引用独立层次对象的组合实现类。 桥接模式可以将庞杂类拆分为几个类层次结构。 此后, 你可以修改任意一个类层次结构而不…...
计算机网络知识速记:HTTP1.0和HTTP1.1
计算机网络知识速记:HTTP1.0和HTTP1.1 1. 基本概念 1.1 HTTP1.0 HTTP1.0是1996年发布的第一个正式版本,主要用于客户端与服务器之间的简单请求和响应交互。它的设计理念相对简单,适合处理一些基本的网页服务。 1.2 HTTP1.1 HTTP1.1是HTT…...
Windows下查看WIFI密码
目录 命令行查看历史WIFI netsh wlan show profiles 命令行查看某一特定WIFI密码 netsh wlan show profile name “WIFI名” keyclear 打开命令行https://blog.csdn.net/weixin_70822378/article/details/145598560?spm1001.2014.3001.5502 命令行查看历史WIFI nets…...
Android车机DIY开发之软件篇(十二) AOSP12下载编译
Android车机DIY开发之软件篇(十二) AOSP12下载编译 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib gmultilib libc6-dev-i386 lib32ncurses5-dev libx11-dev lib32z-dev ccache libgl1-mesa-…...
Datawhale Ollama教程笔记2
本期学习易错点: 改文件后缀 改了models的存储地址后,把下载和新建的文件存储在什么地方 注册hugging face,找到token. 学习手册:https://datawhalechina.github.io/handy-ollama/#/ 第 3 章 自定义导入模型https://datawhalechina.gith…...
ClickHouse的前世今生
ClickHouse是一款由Yandex开发的高性能列式存储数据库管理系统,专为在线分析处理(OLAP)设计,适用于实时数据分析、大规模数据处理和复杂查询场景。以下是关于ClickHouse的安装、使用及应用场景的详细介绍: 一、ClickHouse的安装 ClickHouse支持多种操作系统,包括Linux、…...
SSH隧道+Nginx:绿色通道详解(SSH Tunnel+nginx: Green Channel Detailed Explanation)
SSH隧道Nginx:内网资源访问的绿色通道 问题背景 模拟生产环境,使用两层Nginx做反向代理,请求公网IP来访问内网服务器的网站。通过ssh隧道反向代理来实现,重点分析一下nginx反代的基础配置。 实验环境 1、启动内网服务器的tomca…...
html文件怎么转换成pdf文件,2025最新教程
将HTML文件转换成PDF文件,可以采取以下几种方法: 一、使用浏览器内置功能 打开HTML文件:在Chrome、Firefox、IE等浏览器中打开需要转换的HTML文件。打印对话框:按下CtrlP(Windows)或CommandP(M…...
大促备战中稳定性建设策略与总结
文章目录 接口流量评估、上下游依赖梳理降级能力建设应急响应预案建设压力测试监控报警建设容灾演练 之前也专门写过日常稳定性建设的一些策略,传送门 -> 日常稳定性建设策略与总结,本文想专门聊聊大促期间做的一些稳定性保障,顺便记录自己…...
vscode/cursor+godot C#中使用socketIO
在 Visual Studio Code(VS Code)中安装 NuGet 包(例如SocketIOClient),你可以通过以下几种方法: 方法 1:使用dotnet cli 打开终端:在 VS Code 中按下Ctrl 或者通过菜单View -> Terminal打开终端。 导…...
Uniapp 原生组件层级过高问题及解决方案
文章目录 一、引言🏅二、问题描述📌三、问题原因❓四、解决方案💯4.1 使用 cover-view 和 cover-image4.2 使用 subNVue 子窗体4.3 动态隐藏原生组件4.4 使用 v-if 或 v-show 控制组件显示4.5 使用 position: fixed 布局 五、总结Ἰ…...
jQuery介绍(快速、简洁JavaScript库,诞生于2006年,主要目标是简化HTML文档操作、事件处理、动画和Ajax交互)
文章目录 **核心功能 & 亮点**1. **简化 DOM 操作**2. **链式调用**3. **跨浏览器兼容**4. **便捷的事件绑定**5. **Ajax 封装**6. **动画效果** **现状与适用场景**- **传统项目维护**:许多旧系统(如 WordPress 插件、老企业网站)仍依赖…...
第三节 docker基础之---Commit+Dockerfile制作
docker目前镜像的制作两种方法: 1,基于docker Commit制作镜像 2,基于dockerfile制作镜像,Dockerfile 为主流的制作方式 如果不制作镜像删除容器之后则里面配置的文件也随之删除: [rootdocker ~]# docker images 查看…...
通过openresty和lua实现随机壁纸
效果: 图片存放路径: /home/jobs/webs/imgs/ ├── default/ │ ├── image1.jpg │ ├── image2.png ├── cats/ │ ├── cat1.jpg │ ├── cat2.gif ├── dogs/ │ ├── dog1.jpg访问http://demo.com/imgs/default 随机返回…...
企业网站如何快速实现全站HTTPS安全访问?
当用户访问您的网站时,若您的企业网站仍以HTTP协议运行,浏览器“不安全”警告不仅会吓退潜在客户,还会拖累搜索引擎排名,直接影响业务转化和品牌声誉。实现全站HTTPS安全访问,已成为企业网站运营的必选项。 本文为您详…...
《花未眠》夜间四时醒来,海棠花未眠
《花未眠》夜间四时醒来,海棠花未眠 川端康成(1899-1972)日本作家。新感觉派。1968年以“敏锐的感受,高超的叙事技巧,表现日本人的精神实质”获诺贝尔文学奖。诺贝尔文学奖提名作有《雪国》《千羽鹤》《古都》。 陈德文…...
在nodejs中使用RabbitMQ(三)Routing、Topics、Headers
示例一、Routing exchange类型direct,根据消息的routekey将消息直接转发到指定队列。producer.ts 生产者主要发送消息,consumer.ts负责接收消息,同时也都可以创建exchange交换机,创建队列,为队列绑定exchangeÿ…...
kubeconfig存放内容有哪些
kubeconfig 文件是 Kubernetes 用于配置和认证的核心文件。它包含了关于如何访问 Kubernetes 集群的信息。以下是 kubeconfig 文件中常见的一些内容结构: apiVersion: 指定 kubeconfig 的版本,通常是 v1。clusters: 定义了集群的信息,包括集…...
图神经网络是什么,有什么实际应用
图神经网络是什么 图神经网络(Graph Neural Network,GNN)是一种专门用于处理图结构数据的神经网络,它能对图中的节点、边和整个图进行学习和推理,在社交网络分析、生物信息学、推荐系统等领域应用广泛。以下是其原理及示例说明: 图神经网络原理 节点表示学习:为图中每…...
如何将DeepSeek配置到离线电脑(内网)中?— 附Ollama夸克下载链接
1、在外网和内网电脑中分别安装Ollama 如下载速度较慢,安装包附在本文最后。 下载完成后傻瓜一键安装即可。 2、下载deepseek 在外网电脑中启动命令行输入下载命令。以下载8B为例,其他版本同。 ollama run deepseek-r1:8b 3、资源转移 在外网电脑…...
拯救者Y9000P双系统ubuntu22.04安装4070显卡驱动
拯救者Y9000P双系统ubuntu22.04安装4070显卡驱动 1. 前情: 1TB的硬盘,分了120G作ubuntu22.04。/boot: 300MB, / : 40GB, /home: 75G, 其余作swap area。 2. 一开始按这个教程:对我无效 https://blog.csdn.net/Eric_xkk/article/details/1…...
vue项目 Axios创建拦截器
Axios 1. Axios 和 Ajax 简介2. Axios 和 Ajax 的区别3. 从 按钮 到 Axios请求后端接口的 大致顺序 1. Axios 和 Ajax 简介 Ajax(Asynchronous JavaScript and XML) 不是一种技术,而是一个编程技术概念,核心是通过 XMLHttpReques…...
web前端第三次作业
题目 本期作业 WEB第三次作业 请使用JS实一个网页中登录窗口的显示/隐藏,页面中拖动移动,并且添加了边界判断的网页效 代码图片 效果展示 代码 <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8&qu…...
滑动窗口算法笔记(C++)
滑动窗口算法是一种基于双指针技巧的高效算法, 常用于解决数组或字符串上的一些特定问题. 算法讲解 基本概念 滑动窗口算法可以想象成在一个数组或字符串上有一个固定大小或者可变大小的窗口, 该窗口在数组或字符串上从左到右滑动. 在滑动的过程中, 根据具体问题的要求, 对窗…...
day02冒泡排序
思路: 外层循环控制循环次数(i<len),设置swapFlagfalse内层循环j1(j<len-i),两两(j和j-1)比较,逆序则交换内层每次循环结束,没有交换,则break结束 内层循环j从1开始,小于len,…...
【工业场景】用YOLOv8实现火灾识别
火灾识别任务是工业领域急需关注的重点安全事项,其应用场景和背景意义主要体现在以下几个方面: 应用场景:工业场所:在工厂、仓库等工业场所中,火灾是造成重大财产损失和人员伤亡的主要原因之一。利用火灾识别技术可以及时发现火灾迹象,采取相应的应急措施,保障人员安全和…...
管式超滤膜分离技术都可以应用到哪些行业?
管式超滤膜分离技术由于其高效、稳定和适应性强的特点,在多个行业都有广泛的应用: 1. 生物制药与医药行业 纯化与浓缩:在生物药品的下游处理阶段,管式超滤膜被用来纯化抗体、疫苗、蛋白质等生物大分子,通过精确筛选分子…...
数智百问 | 制造企业如何降低产线检测数据的存储和管理成本?
在《“十四五”智能制造发展规划》等政策的推动下,以及新能源汽车、消费电子等品牌商对产品质量和供应商智能化水平要求的提升,半导体、电子制造、动力电池等先进制造行业企业纷纷推进产线智能化升级,并投入大量机器视觉检测设备以实现自动化…...
Linux中getifaddrs函数
文章目录 **函数原型****参数****返回值****释放资源****`struct ifaddrs` 结构****示例代码****输出示例****相关函数****总结**getifaddrs 是 Linux(以及其他 Unix-like 系统)中用于获取本机网络接口信息的系统调用。它提供了一种简单的方法来获取所有网络接口的地址信息,…...
Barra多因子模型
Barra模型 1. Barra模型概述1.1 Barra模型的历史与发展1.2 Barra模型在全球市场中的应用 2. Barra模型的基本原理2.1 APT理论基础2.2 Barra模型的基本原理:因子模型的核心假设因子暴露 β i j \beta_{ij} βij的假设因子收益率 f j f_j fj的假设 3. Barra模型的…...
P5:使用pytorch实现运动鞋识别
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 我的环境 语言环境:python 3.7.12 编译器:pycharm 深度学习环境:tensorflow 2.7.0 数据:本地数据集-运动鞋 一…...
redis持久化原理相关面试题剖析
一、Redis 持久化的机制是什么? Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次 Redis重启时,利用…...
动态规划LeetCode-1049.最后一块石头的重量Ⅱ
有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x < y。那么粉碎的可能结果如下: 如果 x y&…...
Linux Media 子系统 V4l2
一 创建 V4l2 的 entity 在Linux内核的Media Controller框架中,V4L2设备作为实体(entity)的注册过程涉及以下步骤: 1. 初始化Media Controller结构 驱动首先创建一个media_device实例,并与V4L2设备(如v4…...
民兵装备管理系统DW-S300|支持国产化、自主研发
民兵装备器材管理系统(智装备DW-S301)是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 装备接收与登记 民兵装备抵达仓库时&#…...
Pro Git --(Windows)总结
Pro Git --Windows 文章目录 Pro Git --Windows知识来源Git入门与进阶 知识来源 廖雪峰的官方网站 Git教程 Git入门与进阶 # 初步学习Git #个人建议先大致过一遍,对Git有个大致的理解,然后在实操项目# 创建一个空目录 $ mkdir learngit $ cd learngit …...
加油口,电梯门的对称性对 TCP/IP 传输协议的启示
春节期间河南穷游屡次加油站排队加油之启示。 不考虑有意的设计因素,汽车加油口概率性分布在车身的左边或者右边,这个偶然的小细节让加油机同时为两辆车加油而无需额外的加油管。 如果所有车辆加油口都在同一侧,加油站的加油机就只能给一边的…...
【进阶】JVM篇
为什么学习jvm 1、面试的需要 学过java的程序员对jvm应该不陌生,程序员为什么要学习jvm呢?其实不懂jvm也可以照样写出优质的代码,但是不懂jvm会被大厂的面试官虐的体无完肤。 2、高级程序员需要了解 jvm作用 jvm负责把编译后的字节码转换…...
【安全靶场】信息收集靶场
靶场:https://app.hackinghub.io/hubs/prison-hack 信息收集 子域名收集 1.subfinder files.jabprisons.com staging.jabprisons.com cobrowse.jabprisons.com a1.top.jabprisons.com cf1.jabprisons.com va.cobrowse.jabprisons.com vs.jabprisons.com c…...
新数据结构(4)——Java继承
基本概念 继承的本质:重复使用已经定义好的方法和域,实现代码的重复利用。 使用继承之后,创建的子类可以方便地调用父类中已经定义的方法。 一个继承的例子: 重载和重写 重载 重载:发生在同一个类里,指…...
大数据学习之SparkStreaming、PB级百战出行网约车项目一
一.SparkStreaming 163.SparkStreaming概述 Spark Streaming is an extension of the core Spark API that enables scalable, high-throughput, fault-tolerant stream processing of live data streams. Spark Streaming 是核心 Spark API 的扩展,支持实时数据…...
介绍两个个电池充电管理芯片(TP4057、ME4069)
第一个是TP4057。 输入电压是4~6.5V TP4056,它们之间最大的区别就是TP4056最高是1A的充电电流,而TP4057是500ma,适用于更小一点的电池。 TP4057停机模式的静态电流也更小(上图列的是待机模式,但查看后面的表格发现实际…...
Debezium日常分享系列之:解码逻辑解码消息内容
Debezium日常分享系列之:解码逻辑解码消息内容 示例配置选项 DecodeLogicalDecodingMessageContent SMT将PostgreSQL逻辑解码消息的二进制内容转换为结构化形式。当Debezium PostgreSQL连接器捕获逻辑解码消息时,它会将消息事件记录发送到Kafka。默认情况…...
【Linux】smp_mb__after_atomic
文章目录 背景知识smp_mb__after_atomic 的作用具体应用场景为什么需要 smp_mb__after_atomic相关宏总结 背景知识 在现代多核处理器和并发编程中,编译器优化和CPU乱序执行可能导致程序指令的实际执行顺序与源代码中的顺序不一致。这种现象可能会破坏多线程或进程间…...
关于conda换镜像源,pip换源
目录 1. 查看当前下载源2. 添加镜像源2.1清华大学开源软件镜像站2.2上海交通大学开源镜像站2.3中国科学技术大学 3.删除镜像源4.删除所有镜像源,恢复默认5.什么是conda-forge6.pip换源 1. 查看当前下载源 conda config --show channels 如果发现多个 可以只保留1个…...
【JavaEE进阶】依赖注入 DI详解
目录 🌴什么是依赖注入 🎄依赖注入的三种方法 🚩属性注⼊(Field Injection) 🚩Setter注入 🚩构造方法注入 🚩三种注⼊的优缺点 🌳Autowired存在的问题 🌲解决Autowired存在的…...