• 2024-09-07斜率优化DP
    斜率优化DP例题任务安排题面\(n\)个任务排成一个序列在一台机器上等待完成(顺序不得改变),这\(N\)个任务被分成若干批,每批包含相邻的若干任务。从零时刻开始,这些任务被分批加工,第\(i\)个任务单独完成所需的时间为\(T_i\)。在每批任务开始前,机器需要启动时间\(S\),而完成这
  • 2024-07-23单调队列优化 && 斜率优化
    单调队列优化dp浅学1.概念单调队列优化的本质是借助单调性,及时排除不可能的决策,保持候选集合的秩序性。2.例题P1714切蛋糕题目大意:给定一个序列,找出长度不超过\(m\)的连续子序列,使得子序列中所有数的和最大。思路:要求区间和,首先求出前缀和,然后考虑朴素dp,不难想到
  • 2024-06-12[DP] DP优化总结
    写在前面$DP$,是每个信息学竞赛选手所必会的算法,而$DP$中状态的转移又显得尤为关键。本文主要从状态的设计和转移入手,利用各种方法对朴素$DP$的时间复杂度和空间复杂度进行优化与处理,以达到满足题目要求的目的;参考文献:动态规划算法的优化技巧毛子青c++DP总结《算
  • 2024-02-14斜率优化
    以P5785[SDOI2012]任务安排为例朴素方程其实也没那么简单,第一眼想法是设\(f(i,k)\)表示以\(i\)为结尾,共分了\(k\)段的总方案数\[f(i,k)=\min_{j=0}^{i-1}f(j,k-1)+(sumc_i-sumc_j)\cdot(sumt_i+s\cdotk)\]枚举的\(j\)表示当前选的第\(k\)段为\((j,i]\)\(O(n
  • 2023-11-22【题目-任务安排2】斜率优化dp
    题解首先,递推关系如下:\(dp[i]=min(dp[i],dp[j]+sumt[i]*(sumc[i]-sumc[j])+s*(sumc[n]-sumc[j]));\)显然N太大,无法\(O(n^2)\)算法解决问题。考虑如何优化掉第二个j的循环,发现这个循环是找最优的j位置假设\(j\)就是最优位置,那么可以先初步消掉min,接着如下分析:
  • 2023-11-01acwing300任务安排1对“费用提前计算”的解释
    我们考查对任意一种方案答案的构成假设最终方案只有这三段那么很显然,答案为$$(S+sumT_[i])\cdotsumC_{i}+(2S+sumT_[j])\cdot(sumC_{j}-sumC_{i})+(3S+sumT_[n])\cdot(sumC_{n}-sumC_{j})$$我们换一种写法,答案为$$sumT_{i}\cdotsumC_{i}+sumT_{j}\cdot(sumC_{j}-sumC_{i}
  • 2023-09-16浅谈斜率优化
    众所周知,动态规划推出状态转移方程是很困难的,推出状态转移方程后发现复杂度爆炸是很炸裂的,所以这就是斜率优化存在的意义----降低转移方程的复杂度在看具体例子之前,我们先大致的介绍一下斜率优化的原理考虑一个这样的状态转移方程,f[i]=min{f[j]-k[i]*j+s[i]}  j<
  • 2023-07-24斜率优化dp
    ###斜率优化简介**问题引入**给定一个长度为$n$的序列$a[i]$,连续若干个数可以分为一组,将这些数分成若干组,每一组的代价为组内元素和的平方,要求最小化代价$n\le2\times10^5$**朴素算法**设$f[i]$表示将前$i$个数分组之后的最小代价,那么有转移方程$$f[i]=\min_
  • 2023-07-10斜率优化dp学习笔记
    前置知识单调队列优化dp,计算几何基础知识,小学数学。斜率优化在dp中,我们常常能遇到一类转移方程,其中含有\(i\)相关的项与\(j\)相关的项的乘积,形如这种形式:\[f_i=\max_{j<i}\{f_j+a_ib_j\}\]我们常见的单调队列优化只能优化只含\(j\)项的方程,对于这种方程无能为力。
  • 2023-05-01[P5785 [SDOI2012]任务安排] 题解
    P5785[SDOI2012]任务安排题目描述分析很明显是一个dp我们不妨设\(dp[i]\)表示枚举到\(i\)的最小费用\(t[i]\)表示加工完第\(i\)个任务所用的总时间,也就是\(T[i]\)的前缀和由于每一批任务前都要一个时间为\(s\)的开机工作我们不妨把每一个这样的\(s\)秒提出来,则这\(s\)秒都
  • 2022-11-07P1455 搭配购买
    ​​传送门​​思路:用并查集将相同的云朵化为一个集合,并将一个集合内的所有云朵看作一个整体,最后用01背包得到答案。#include<bits/stdc++.h>usingnamespacestd;typedef
  • 2022-10-09【斜率优化】任务安排
    **斜率优化**任务安排1P2365O(n^2)时间为t费用为c状态表示:f[i]表示将前i个任务分为若干批执行的费用+之后的启动时间的最小值重要思想:1.费用提前计算: