首页 > 其他分享 >103rd 2024/9/24 斜率优化

103rd 2024/9/24 斜率优化

时间:2024-10-11 22:21:42浏览次数:17  
标签:24 max 有关 2024 103rd ib 转移 DP 2a

总算是补上了很久之前的坑,一直没学,之前一直不肯动脑子?

思路可以从简单的进行入手

对于部分DP,若转移是\(i\)从一个\(j\)转移过来,且转移具有单调性,切极为明显,形如\(f_i=max(f_i,f_j+b_j+a_i)\)

那么显然可以直接求之前的最值,用一个max记录即可

但是有时候会出现跟双方都有关的贡献项,使得没法直接取极值

如\(f_i=max(f_i,f_j+b_j+a_i+c_jd_i)\)

这样可以通过一些变式实现单调转移

举个例子,玩具装箱,洛谷P3195,典中典

首先易得\(O(n^2)\)DP,发现其转移式子较长,为方便,可以先将其化为\((a_i-b_j)^2\)的形式,方便化简,其中\(a\)是只与\(i\)有关的项,b是与\(j\)有关的以及一些常数项,方便书写和处理

发现拆括号后变成\(f_i=f_j+a_i^2+b_j^2-2a_ib_j\)

其中一部分只与i有关,一部分只与j有关,另一部分与i,j都有关,于是分类一下得\(2a_ib_j+f_i-a_i^2=f_j+b_j^2\)

发挥人类智慧,可以发现,变形后这类似一次函数形式,因为DP时固定i,\(f_i-a_i^2\)是定值,看作\(b\),而\(2a_ib_j\)又类似\(kx\)的形式

因为\(2a_i\)也是定值,所以将\(b_j\)视作\(x\),

(未更完)

标签:24,max,有关,2024,103rd,ib,转移,DP,2a
From: https://www.cnblogs.com/tlz-place/p/18459492

相关文章

  • 安徽省关于做好2024年度全省职称评审工作的通知
    皖人社秘〔2024〕165号各市及广德市、宿松县人力资源社会保障局,省直有关单位: 为贯彻人才兴皖工程部署,落实国家和省关于深化职称制度及人才评价机制改革精神,加快专业技术人才队伍建设,按照《职称评审管理暂行规定》(人社部令第40号)和《安徽省职称评审工作实施办法》(皖人社发〔......
  • 多校A层冲刺NOIP2024模拟赛05
    A.好数(number)很容易想到\(n^3\)枚举两个,看第三个是否出现,扩展一下,枚举一个,看剩下需要的和是否出现过,提前处理出两两的和和最早能合出这个数的位置,复杂的\(O(n^2)\)点击查看代码#include<bits/stdc++.h>constintmaxn=5000+10;usingnamespacestd;intn,a[maxn],cnt,......
  • 多校A层冲刺NOIP2024模拟赛05
    T1、好数(number)签到题把选三个数相加拆为选择一个数,然后看前面有没有能用两个数组合出答案。$O(n^2)$。码(#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<int,int>pii;#definemkmake_pair#de......
  • 20241011-2
    1.判断最大值:定义一个无符号的整型数组,求数组中的最大值。思路:inta1=10,a2=20,a3=5; 两两相比,求最大值2.从终端获取字符串,将整个字符串倒置存储。(提示:可以使用辅助数组)3.10层杨辉三角#include<stdio.h>#include<string.h>#defineARR15typedefunsigned......
  • 20241011-1 字符串函数自写
    #include<stdio.h>#include<string.h>unsignedintmystrlen(char*str){ unsignedintcount=0; while('\0'!=*(str++)) { count++; } returncount;}/*str1:目的字符串str2:源字符串*/voidmystrcpy(char*str1,char*str2){ ch......
  • 2024西北工业大学noj(C语言)记录
    作者是零基础捏,仅作个人学习记录,多数题目会有更优解。有些题目虽然AC了但是可能不严谨。有错误请务必指正我我做完之后会看去年学长发的贴子,各位可以直接看他们的,他们的算法确实更优,有些打的注解就是看过他们的文章后加入的。如果各位有优解可以在评论区或者私信教我hh......