首页 > 其他分享 >【学习笔记】闵可夫斯基和

【学习笔记】闵可夫斯基和

时间:2023-09-01 20:11:21浏览次数:39  
标签:min int max 笔记 闵可 夫斯基 Delta size

概述

用于优化 \((\max/\min,+)\) 卷积,形如:

\[f_i=\max_{j=0}^i/\min_{j=0}^i \{g_j+h_{i-j}\} \]

要求 \(g,h\) 具有凸性。

算法流程

以 \(\max\) 为例,要求 \(g,h\) 形成上凸包,对 \(g,h\) 差分,那么 \(f_i\) 相当于在 \(\Delta g\) 和 \(\Delta h\) 中选两个前缀,要求长度和为 \(i\),权值和最大。由于 \(\Delta g\) 和 \(\Delta h\) 都单调不升,那么归并排序之后选前 \(i\) 个数就是最优。

同理 \(\min\) 要求 \(g,h\) 形成下凸包。

vector<int> Minkowski(vector<int> g,vector<int> h){
    vector<int> f;
    for(int i=(int)g.size()-1;i>=1;--i) g[i]-=g[i-1];
    for(int i=(int)h.size()-1;i>=1;--i) h[i]-=h[i-1];
    f.resize(g.size()+h.size());
    merge(g.begin(),g.end(),h.begin(),h.end(),f.begin(),greater<int>());
    for(int i=1;i<f.size();++i) f[i]+=f[i-1];
    return f;
}

优化 DP

通常与分治同时使用。

转移方程 \(f_{i,j}=\max_{j=0}^i/\min_{j=0}^i \{f_{i-1,j}+w_{i,i-j}\}\)

若 \(f,w\) 均具有凸性,可以使用闵可夫斯基和优化至 \(O(n)\) 转移,分治可以做到 \(O(n\log n)\)。

例题

待更新。

参考资料

【学习笔记】闵可夫斯基和 - APJifengc

标签:min,int,max,笔记,闵可,夫斯基,Delta,size
From: https://www.cnblogs.com/SoyTony/p/Learning_Notes_about_Minkowski_Sum.html

相关文章

  • 算法笔记——高精度算法(附源码)
    ......
  • 学习笔记:在VirtualBox上安装最新版本的Ubuntu
    学习笔记:在VirtualBox上安装最新版本的Ubuntu1.安装Ubuntu虚拟机首先,我决定在我的笔记本电脑上安装Linux操作系统,以便更深入地了解Linux和学习一些Linux命令。我选择了在VirtualBox虚拟机中安装最新版本的Ubuntu。以下是我学习和执行这一任务的步骤:1.1下载并安装VirtualBox......
  • 018 学习笔记-- 实现二维表头统计(存储过程+游标+行转列+字符串截取)
    实现下图类似效果统计 数据库设计如下  存储过程如下所示:USE[DBTEST]GO/******Object:StoredProcedure[dbo].[GetData]ScriptDate:2023-09-0116:56:01******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERproc[dbo].[GetData]asdeclare......
  • c++并发编程实战-第2章 线程管控-读书笔记
    线程的基本管控每个应用程序都至少拥有一个线程,即运行main函数的线程,称为主线程,它由c++运行时系统启动。我们可以在软件运行中产生其他线程,它们以指定的函数作为入口函数。当main函数返回后,程序会退出;同样,当入口函数返回后,与之对应的线程结束。发起线程线程是通过构造std::thre......
  • tomcat 安装笔记 20230901
    war位置/usr/local/tomcat8_1/webapps/tomcat位置71.170/usr/local/tomcat8_1/给了点工具包位置/usr/local/tool/启动tomcatcd/usr/local/tomcat8_1/bin/./startup.sh没有权限启动cd/usr/local/tomcat8_1/bin/chmode777*启动失败没有java环境,安装下cd/usr/l......
  • Python-3.10.5学习笔记
     Linux系统-部署-运维系列导航pip源初始化pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simplepipconfigsetinstall.trusted-hostpypi.tuna.tsinghua.edu.cn VSCode插件安装语法检查flake8代码格式化yapf文件及文件夹图标vscode-icon......
  • 联系笔记本开启摄像头后是黑屏
    联想Y9000X,开启笔记本摄像头访问权限后,发现视频还是黑屏。设备管理器中,怀疑是不是没有“图像设备”的原因,各种找。后面发现与没有“图像设备”没关系。摄像头附近有个隐私物理开关。物理开关默认是关闭的,拨到右边是打开。小丑是自己。......
  • [读书笔记]架构设计原则
    架构设计面向的是不确定性,需要面对多种可能性时进行选择。选择的前提是知识和经验,知识是指有哪些技术、可用组件、实现思路等,这个决定了可选的范围。经验是对当前的业务、情形进行分析,能识别对当前的工作最有效的要素,能从选择空间里做出选择。多学习:扩大可选择的空间和范围多......
  • CentOS 8中部署CRM系统笔记
    项目下docker目录介绍wk_crm└──docker--docker部署相关文件├──conf--mysql、nacos、nginx、redis配置├──data--mysql、elasticsearch数据,mysql初始化数据脚本,elasticsearchplugins......
  • 超全面的JavaWeb笔记day10<Response&Request&路径&编码>
    1、Response2、Request3、路径4、编码请求响应流程图 response1、response概述response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response对象是用来......