首页 > 其他分享 >DP1

DP1

时间:2023-08-12 14:44:17浏览次数:35  
标签:le DP1 AP pos times 斜率 枚举

DP1

P2523 [HAOI2011] Problem c

从后往前考虑,容易判掉无解。

启发我们计数也从后往前考虑,设 \(f[i][j]\) 表示考虑到 \([i, n]\) 的位置,确定了 \(j\) 个人的编号的方案数。

转移枚举之前确定了多少个人、在当前位置确定多少个人即可。

CF311B Cats Transport

求出正好接到每只小猫的出发时间 \(a_i\),将小猫 \(a\) 升序排序,记 \(s_i\) 为 \(a\) 的前缀和,朴素的 dp 转移:设 \(f_{i, j}\) 表示考虑前 \(i\) 个铲屎官接走前 \(j\) 只小猫的最小代价。则 \(f_{i, j} = \min(f_{i, j}, f_{i - 1, k} + a_j \times (j - k) - (s_j - s_k))\)。

划分成 \(p\) 段的最小代价 —— 想到 WQS 二分相关的优化技巧。

不过这题没必要 WQS 二分,简单地套个斜率优化就可以了。

斜率优化推式子部分:

\(f_{i - 1, k} + s_k = a_{j}k + f_{i, j} + s_{j} - ja_{j}\)。

令 \(y = f_{i - 1, k} + s_{k}, slope = a_j, x = k, b = f_{i, j} + s_{j} - ja_j\)。

斜率单增,求 \(b\) 的最小值,维护一个下凸包即可。时间复杂度 \(O(pm)\)。

P4056 [JSOI2009] 火星藏宝图

可以把直接跳分解成先向下走再向右走,则从同一列的若干点直接转移到后面的点 \(x\),一定选取这一列能转移到 \(x\) 的最下方的点进行转移(从收益和代价分别考虑)。这个可以 \(O(m^2)\) 预处理。

将所有点按列为第一关键字,行为第二关键字排序,枚举每个点以及从哪一列转移过来,可以得到 \(O(nm)\) 的做法。

推式子,发现是可以斜率优化的形式。稍微分析一下可以发现之前的枚举顺序不好优化,因为每列的最大行时刻都在变化。

换一下顺序,按行为第一关键字,列为第二关键字进行更新,记 \(f_{i, j}\) 表示到第 \(i\) 行第 \(j\)​ 列的最大权值。

\(f_{i, j} = \min(f_{i, j}, f_{pos_{x}, x} - (i - pos_x)^2 - (j - x)^2 + w_{i, j})\)。其中 \(pos_x\) 表示第 \(x\) 列能转移当前点的最大行,这个可以 \(O(1)\) 实时更新,且支持每一行开一个单调队列进行斜率优化。

斜率优化推式子部分:

\(f_{pos_x, x} - (i - pos_x)^2 - x^2 = -2jx + f_{i, j} + j^2 - w_{i, j}\)。

令 \(y = f_{pos_x, x} - (i - pos_x)^2 - x^2, slope = -2j, x = x, b = f_{i, j} + j^2 - w_{i, j}\)。

斜率单减,求 \(b\) 的最大值,维护一个上凸包即可。时间复杂度 \(O(m^2)\)。

由于当前点可以由该列上方转移过来,因此实现时要先把当前位置插进队列再进行后续操作。

P2569 [SCOI2010] 股票交易

因为 \(AP_i \ge BP_i\),所以一天内要么买要么卖。

设 \(f_{i, j}\) 表示第 \(i\) 天持有 \(j\) 支股票的最大收益。

  • 啥也不做:\(f_{i, j} = f_{i - 1, j}\)。

  • 第一次买:\(f_{i, j} = -j\times AP_i\)。

  • 隔 \(K\) 天买:\(f_{i, j} = \max(f_{i - K - 1, k} - (j - k)\times AP_i) (j - k \le AS_i)\)。

  • 隔 \(K\) 天卖:\(f_{i, j} = \max(f_{i - K - 1, k} + (k - j) \times BP_i)(k - j \le BS_i)\)。

能直接用 \(f_{i - K - 1}\) 更新 \(f_i\) 的原因是因为 \(f_{x}\) 相较于 \(f_{x - 1}\) 一定不劣(因为可以啥也不做)

直接枚举 \(i, j, k\) 是 \(O(n^3)\) 的,但可以从小到大枚举 \(j\),滑动窗口维护 \(j - k \le AP_i\) 的 \(f_{i - K - 1, k} + k \times AP_i\) 的最大值,对于卖的情况类似处理,从大到小枚举即可。

P2317 [HNOI2005] 星际贸易

做一遍背包,求出最大贸易额。题目保证了只有一种获得最大贸易额的方法,因此可以通过倒推 dp 数组确定必经星球。

然后求第二问。燃料数的有效范围是 \(2n\),因此可以把 \(R\) 砍下来。

设 \(f_{i, x}\) 表示在第 \(i\) 个星球停靠并进行加燃料和维护后,飞船上燃料数为 \(x\) 的最小花费。

\(f_{i, x} = \min(f_{j, y} + (x - y + 2)\times P_i + F_i), L_{i} - L_j \le L_0, 2\le y \le x + 2\)。

滚动优化:\(f_{i, x} = \min(f_{i, x - 1} + P_i, f_{j, x + 2} + F_i)\),省去了枚举之前油量的步骤。

对每一个 \(x\) 开一个单调队列,维护 \(L_i - L_j \le L_0\) 时 \(f_{j, x + 2}\) 的最大值。

注意当枚举到必经星球时,需要把队列清空,只保留当前星球。

P2515 [HAOI2010] 软件安装

将 \(i\) 向 \(D_i\) 连边,每个连通块都是一棵基环树,直接用 tarjan 缩一遍点就转成了森林,且其中的每一棵有向树都是根向树。

选一些点获得权值,同时消耗容量,如果一个点被选,则它的父亲也要被选。

做树上背包即可。

由于一些奇怪的原因树上背包挂了一个晚上,并且现在还不知道怎么回事。

P4190 [CTSC2010] 三国围棋擂台赛

状压,记忆化搜索。记 \(f[S0][S1][S2][a][b][x]\) 表示三国分别还剩哪些人、\(a\) 作为上一场胜方与 \(b\) 比赛、\(x\) 为上一场胜者的概率。

标签:le,DP1,AP,pos,times,斜率,枚举
From: https://www.cnblogs.com/Schucking-Sattin/p/17624787.html

相关文章

  • nefu-dp1 (线性dp)
    nefu-dp1https://vjudge.csgrandeur.cn/contest/571200#overview感谢z神的题单dp废物来打基础了。(感觉难度大概是递减的)琪露诺单调队列优化dp#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+5;intf[N],a[N],n,l,r;//f[i]:i结尾的最大值in......
  • eDP1.4a/DP1.4 转 GMSL2 方案
    GMSL2点屏及老化,应用于车载中控及仪表屏 ......
  • DP1040 DP国产代替TJA1040 CAN总线收发器接口芯片 SOP8
    1简述DP1040C是一款应用于CAN协议控制器和物理总线之间的接口芯片,可应用于卡车、公交、小汽车、工业控制等领域,速率可达到1Mbps,具有在总线与CAN协议控制器之间进行差分信号传输的能力,完全兼容“ISO11898”标准。2短路保护DP1040C的驱动级具有限流保护功能,以防止驱动电路短......
  • CAN 总线 TJA1050/DP1050 引脚定义以及中文资料
    1简述DP1050是一款应用于CAN协议控制器和物理总线之间的接口芯片,可应用于卡车、公交、小汽车、工业控制等领域,速率可达到1Mbps,具有在总线与CAN协议控制器之间进行差分信号传输的能力,完全兼容“ISO11898”标准。DP1050芯片特点-完全兼容“ISO11898”标准;-内置过温......
  • TJA1050国产替代DP1050T高速 CAN 总线收发器
    DP1050T是一款应用于CAN协议控制器和物理总线之间的接口芯片,可应用于卡车、公交、小汽车、工业控制等领域,速率可达到1Mbps,具有在总线与CAN协议控制器之间进行差分信......
  • NFC芯片DP1363F兼容LRC663/RC522支持18092/15693协议多设备读卡超高性价比
    DP1363是一款高度集成的非接触读写芯片,集强大的多协议支持、最高射频输出功率、以及突破性技术低功耗卡片检测等优势一身,满足市场对更高集成度、更小外壳和互操作性的需求,......
  • 做题记录整理dp15 P1772. [ZJOI2006] 物流运输(2022/9/28)
    P3648[APIO2014]序列分割第一次做斜率优化的题题解看懂了,但没有完全看懂等以后得回来看一次#include<bits/stdc++.h>#definefor1(i,a,b)for(inti=a;i<=b;i++)......
  • 做题记录整理dp15 P1772. [ZJOI2006] 物流运输(2022/9/28)
    P1772.[ZJOI2006]物流运输图论+dp首先看数据范围这么小,其实就可以猜到很可能是先把i到j天的最短路都求出来然后就会发现dp方程很简单了dp[i]=min(dp[j]+最短路[j+1][......
  • 做题记录整理dp14 P5336 [THUSC2016]成绩单(2022/9/27)
    P5336[THUSC2016]成绩单这题难度标的虚高首先一眼区间dp,然后写出递推方程然后发现爆空间,再上离散化然后就没了。。。撑死也就是蓝题不过学到了一个离散化技巧#incl......
  • 做题记录整理dp13 P7914 [CSP-S 2021] 括号序列(2022/9/26)
    P7914[CSP-S2021]括号序列非常考思维的思维题(甚至做到了让全广西都恐惧(似乎广西连拿暴力分的人都没有))由于看了题解,所以这题相当于是在巨人的肩膀上做题了。。。而且......