摘要:
题目链接: "https://www.luogu.com.cn/problem/P1168" 解题思路: 开一个大根堆维护前 $\lfloor \frac{i}{2} \rfloor$ 个较小的元素; 开一个小根堆维护前 $\lceil \frac{i}{2} \rceil$ 个较大的元素。 然后每 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1182" 解题思路: 二分答案。 check(num)用于判断每段不超过num的情况是否存在。 然后二分答案。 2020 3 24 思路补充: 首先,我们可以编写一个 函数,该函数用于验证当每段的最大值为 len 时 阅读全文
摘要:
思路来自 "百度百科" 中的一段话: 设 $n$ 个数的错排方案数为 $D_n$, 第一步,考虑第 $n$ 个元素,把它放在某一个位置,比如位置 $k$ ,一共有 $n 1$ 种放法; 第二步,考虑第 $k$ 个元素,这时有两种情况: (1)把它放到位置 $n$ ,那么对于除 $n$ 以外的 $n 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1144" 题目大意: 给你一个无向无权图,求点 $1$ 到所有点的最短路的方案数。 解题思路: 因为是无权图,所以可以使用广搜来求最短路,然后在广搜的过程中,定义: $dist[u]$ 表示点 $1$ 到点 $u$ 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1714" 题目大意: 给你一个大小为 $n$ 的数组,求满足区间元素个数 $\le m$ 的连续子序列和的最大值。 解题思路: 假设数组中第 $i$ 个元素为 $a[i]$ ,我可以定义 $sum[i]$ 表示前 $ 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P6040" 解题思路: 设状态 $f[i]$ 表示老师走到第 $i$ 个人的最小花费,则: $$f[i] = \min_{j \in [i x, i 1]}(f[j] + (i j 1) \times k + d)$$ 阅读全文
摘要:
题目链接: "http://poj.org/problem?id=2559" 题目大意: 直方图中的每一个柱子都是一个宽度为 $i$ 高度为 $h_i$ 的矩形,求最大矩形面积。 解题思路: 定义两个数组: $L[i]$ 表示第 $i$ 根柱子往左走碰到的第一根比它矮的柱子的坐标 $+1$(如果第 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P2947" 题目大意: 约翰的 $N(1 \le N \le 10^5)$ 头奶牛站成一排,奶牛$i$的身高是$H_i(l \le H_i \le 1,000,000)$.现在,每只奶牛都在向右看齐.对于奶牛$i$,如 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1725" 解题思路: 这道题目是单调队列优化DP的入门题。 状态转移方程是: $$f[i] = \min_{j \in [i r,i l]} f[j] + a[i]$$ 可以使用单调队列优化。 实现代码如下: 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1886" 题目大意: 给你一个长度为 $n$ 的数组 $a$ 以及 $k$,对于所有 $\ge k$ 的 $i$ ,求:区间 $[i k+1, i]$ 的最大值和最小值。 解题思路: 单调队列。 对于求区间最小值,维 阅读全文