EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

题目描述

给定 $n$ 个矩阵,已知第 $i$ 个矩阵 $M_i$ 的大小为 $w_i$ 行 $w_{i+1}$ 列,而我们并不关心其内容。我们考虑将其按照顺序相乘(称其为链乘积):

$$ M = M_1 \times M_2 \times \cdots \times M_n $$

矩阵乘法并不满足交换律,但是其满足结合律,因此我们可以通过合理安排结合顺序,尽可能减少需要的运算次数。在此题中,我们定义将一个大小为 $a \times b$ 的矩阵乘以一个大小为 $b \times c$ 的矩阵需要 $abc$ 次运算。

请你算出将题目所给的 $n$ 个矩阵进行链乘积所需的最少运算数。为了方便起见,你不需要构造方案。

阅读全文 »

题目链接:P1912 [NOI2009] 诗人小G - 洛谷

本题是 DP 四边形不等式优化经典题型。

题目描述

小 G 是一个出色的诗人,经常作诗自娱自乐。但是,他一直被一件事情所困扰,那就是诗的排版问题。

一首诗包含了若干个句子,对于一些连续的短句,可以将它们用空格隔开并放在一行中,注意一行中可以放的句子数目是没有限制的。小 G 给每首诗定义了一个行标准长度(行的长度为一行中符号的总个数),他希望排版后每行的长度都和行标准长度相差不远。显然排版时,不应改变原有的句子顺序,并且小 G 不允许把一个句子分在两行或者更多的行内。在满足上面两个条件的情况下,小 G 对于排版中的每行定义了一个不协调度, 为这行的实际长度与行标准长度差值绝对值的 $P$ 次方,而一个排版的不协调度为所有行不协调度的总和。

阅读全文 »

题目链接:P1081 [NOIP 2012 提高组] 开车旅行 - 洛谷

题目描述

小 $\text{A}$ 和小 $\text{B}$ 决定利用假期外出旅行,他们将想去的城市从 $1 $ 到 $n$ 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 $i$ 的海拔高度为$h_i$,城市 $i$ 和城市 $j$ 之间的距离 $d_{i,j}$ 恰好是这两个城市海拔高度之差的绝对值,即 $d_{i,j}=|h_i-h_j|$。

旅行过程中,小 $\text{A}$ 和小 $\text{B}$ 轮流开车,第一天小 $\text{A}$ 开车,之后每天轮换一次。他们计划选择一个城市 $s$ 作为起点,一直向东行驶,并且最多行驶 $x$ 公里就结束旅行。

小 $\text{A}$ 和小 $\text{B}$ 的驾驶风格不同,小 $\text{B}$ 总是沿着前进方向选择一个最近的城市作为目的地,而小 $\text{A}$ 总是沿着前进方向选择第二近的城市作为目的地(注意:本题中如果当前城市到两个城市的距离相同,则认为离海拔低的那个城市更近)。如果其中任何一人无法按照自己的原则选择目的城市,或者到达目的地会使行驶的总距离超出 $x$ 公里,他们就会结束旅行。

阅读全文 »

本题是四边形不等式的应用。

题目描述

高速公路旁边有一些村庄。高速公路表示为整数轴,每个村庄的位置用单个整数坐标 $X_i$ 标识。没有两个在同样地方的村庄。两个位置之间的距离是其整数坐标差的绝对值。

邮局将建在一些,但不一定是所有的村庄中。为了建立邮局,应选择他们建造的位置,使每个村庄与其最近的邮局之间的距离总和最小。

你要编写一个程序,已知村庄的位置和邮局的数量,计算每个村庄和最近的邮局之间所有距离的最小可能的总和。

阅读全文 »

题目链接:P5785 [SDOI2012] 任务安排 - 洛谷

本题是经典 DP 斜率优化题型。

题目描述

机器上有 $n$ 个需要处理的任务,它们构成了一个序列。这些任务被标号为 $1$ 到 $n$,因此序列的排列为 $1 , 2 , 3 \cdots n$。这 $n$ 个任务被分成若干批,每批包含相邻的若干任务。从时刻 $0$ 开始,这些任务被分批加工,第 $i$ 个任务单独完成所需的时间是 $T_i$。在每批任务开始前,机器需要启动时间 $s$,而完成这批任务所需的时间是各个任务需要时间的总和。

注意,同一批任务将在同一时刻完成。每个任务的费用是它的完成时刻乘以一个费用系数 $C_i$。

阅读全文 »

题目链接:P10977 Cut the Sequence - 洛谷

本题是经典 DP 单调队列优化题型。

题目描述

给定一个长度为 $N$ 的整数序列 $\set{a_N}$,你需要将这个序列划分成若干部分,满足每一部分都是原序列的一个连续子序列,且每个部分的整数之和均不超过 $M$。你的任务是求出在所有合法的划分方式中,每一部分的最大值之和的最小值。

输入格式

阅读全文 »

题目链接:P10978 Fence - 洛谷

本题是经典 DP 单调队列优化题型。

题目描述

一组由 $k$($1 \leq k \leq 100$) 名工人组成的团队需要粉刷一堵包含 $N$ 个木板的围栏,这些木板从左到右编号为 $1$ 到 $N$($1 \leq N \leq 16,000$)。每个工人 $i$($1 \leq i \leq k$)应该坐在木板 $S_i$ 前,他只能粉刷一个连续的区间(这意味着区间内的木板应该是连续的)。这个区间必须包含木板 $S_i$。此外,每个工人粉刷的木板数量不能超过 $L_i$ 个,并且每粉刷一个木板他会得到 $P_i$ 美元($1 \leq P_i \leq 10,000$)。每个木板最多只能由一个工人粉刷。所有的 $S_i$ 都是不同的。

作为团队的领导者,你需要为每个工人确定他们应该粉刷的区间,并且确保总收入最大化。总收入代表工人个人收入的总和。

阅读全文 »

题目链接:P3195 [HNOI2008] 玩具装箱 - 洛谷

本题是经典 DP 斜率优化题型。

题目描述

P 教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。

P 教授有编号为 $1 \cdots n$ 的 $n$ 件玩具,第 $i$ 件玩具经过压缩后的一维长度为 $C_i$。

阅读全文 »