摘要: 01背包 题面 有 \(N\) 件物品和一个容量是 \(m\) 的背包。每件物品只能使用一次。第 \(i\) 件物品的体积是 \(v_i\),价值是 \(w_i\)。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 思路 定义 \(dp_{i,j}\) 为前 阅读全文
posted @ 2026-03-28 09:20 Azarole 阅读(4) 评论(0) 推荐(0)
摘要: 引入 有一个长度为 n 的整数数列 a。 现在有 m 个询问,每个询问的格式为两个整数 x 和 y 表示询问 a 中,第 x 个数到第 y 个数间,最大的一个数是多少。 思路 我们容易想到预处理 \(f[i][j]\) 表示第 \(i\) 个数至第 \(j\) 个数的最大值,查询仅用 \(O(1)\ 阅读全文
posted @ 2026-03-28 09:18 Azarole 阅读(3) 评论(0) 推荐(0)
摘要: 引入 给你一个长度为 \(n\) 的字符串,求最长回文子串的长度。(\(n \le 10^5\)) 思路 容易想到暴力枚举每个点作为中点,往两边扩展,最后取个最大值。发现暴力极限的时间复杂度为 \(O(n^2)\)。 回看暴力的过程,发现如果每个点都要向两边扩展的话,会重复判断许多点,例如: 于是我 阅读全文
posted @ 2026-03-28 09:16 Azarole 阅读(3) 评论(0) 推荐(0)
摘要: 引入 给出两个字符串 \(s_1\) 和 \(s_2\),若 \(s_1\) 的区间 \([l, r]\) 子串与 \(s_2\) 完全相同,则称 \(s_2\) 在 \(s_1\) 中出现了,其出现位置为 \(l\)。 现在请你求出 \(s_2\) 在 \(s_1\) 中所有出现的位置。 定义一个 阅读全文
posted @ 2026-03-28 09:14 Azarole 阅读(1) 评论(0) 推荐(0)
摘要: 面积并 求 \(n\) 个四边平行于坐标轴的矩形的面积并。 思路 容易想到计算每一个长方形的面积,然后去掉重叠的面积就为答案。但是重叠的面积并不好算。 于是我们考虑把图形切割成一块一块的小矩形:(图片均来源于网络) 那我们只需要计算每个小矩形的面积之和就好了,我们假设有一条直线,从下往上依次截取横边 阅读全文
posted @ 2026-03-28 09:12 Azarole 阅读(2) 评论(0) 推荐(0)
摘要: 线段树合并 前置知识: 动态开点 权值线段树 引入 洛谷P3224 永无乡包含 \(n\) 座岛,编号从 \(1\) 到 \(n\) ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 \(n\) 座岛排名,名次用 \(1\) 到 \(n\) 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛 阅读全文
posted @ 2025-12-21 17:20 Azarole 阅读(16) 评论(0) 推荐(0)
摘要: 浅谈dfs序与树链剖分 声明:本文萌新友好向,看这篇文章之前你只需会: 二叉树基本知识 线段树板子 简单 dfs 引入 我们先从一个问题引入: 洛谷P3384 如题,已知一棵包含 \(N(N \le 10^5)\) 个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 1 x y z 阅读全文
posted @ 2025-12-21 13:57 Azarole 阅读(24) 评论(0) 推荐(0)