题目列表

可按标题、OJ、标签和启发记录快速筛选题目解析。

共 1956 题
标题OJ题号标签难度最后更新原题
先做子树内精确距离 DP,再做一次换根,把父亲方向的精确距离贡献传给儿子,最终累加 0..K 层即可。
luoguP3047
树形DP换根DP动态规划
普及+/提高2026-06-21 03:32打开
设 dp[u] 为以 u 为根能得到的最大二叉树高度,把最深孩子放到兄弟链最后,就有转移 dp[u]=儿子数+max(dp[child])。
luoguP8744
树形DP动态规划递推
普及/提高-2026-06-21 03:28打开
设 dp[u] 表示必须包含 u 的最优连通块和,自底向上只吸收正贡献子树,就能在线性时间求树上最大连通子图和。
luoguP8625
树形DP动态规划建模
普及/提高-2026-06-21 03:24打开
在线段树中同时维护区间 1 的数量和最长连续 0,并用左优先递归把目标区间最靠前的若干个 0 填成 1。
luoguP4344
线段树懒标记区间赋值区间最值模拟
提高+/省选-2026-06-21 03:17打开
用树链剖分把树上路径拆成若干个 DFS 序区间,再在线段树中同时维护区间和与区间最大值。
luoguP2590
树链剖分线段树dfs序区间最大值
普及+/提高2026-06-21 03:09打开
把安装与卸载操作转成根到点路径设为 1、子树设为 0,再用树链剖分配合线段树维护区间赋值和区间和。
luoguP2146
树链剖分线段树dfs序建模
提高+/省选-2026-06-21 03:03打开
按右端点升序贪心处理请求,只要整段畜栏最小剩余容量仍大于零就接下,并用线段树维护区间最小值。
luoguP1937
贪心线段树区间最小值区间加建模
提高+/省选-2026-06-21 02:58打开
把区间按长度排序后做双指针,在线段树上维护当前长度窗口内的最大覆盖次数,找到最小可行长度差。
luoguP1712
双指针线段树离散化区间覆盖建模
提高+/省选-2026-06-21 02:53打开
把每个乘车请求看成区间装载,按终点升序且同终点按起点降序贪心接单,再用线段树维护路段最大占用。
luoguP1607
贪心线段树区间加区间最大值建模
普及+/提高2026-06-21 02:42打开
把城市之间的每一段铁路看成一个位置,请求对应区间 `[O,D-1]` 的整体加法,能否接单只取决于这段区间的最大占用是否超过座位数。
luoguP8856
线段树区间最大值区间加建模
普及/提高-2026-06-21 02:39打开
一次染色只能填补两个已黑点之间的空隙,因此答案等价于:两端点初始为黑,且每段初始白色空隙都被至少一个活跃操作跨过。
luoguP8473
线段树二分区间覆盖建模思维
提高+/省选-2026-06-21 02:30打开
不要把删除操作当成模除法,而要把每次乘法看成一个位置:插入时赋值为乘数,删除时改回 1,用线段树维护全局乘积。
luoguP4588
线段树乘积建模单点修改取模
普及/提高-2026-06-21 02:24打开
在线段树节点同时维护区间和与区间最小值,区间加时用同一个懒标记同步更新这两个量。
luoguP3130
线段树懒标记区间加区间最小值区间和
普及/提高-2026-06-21 02:17打开
把灯的开关状态看成 0/1 数组,区间翻转时用 `区间长度 - 当前开灯数` 更新节点,再用懒标记维护整段翻转。
luoguP2846
线段树懒标记区间翻转区间求和
普及/提高-2026-06-21 02:13打开
把题意翻成区间约束后,核心只剩查询 `(Y,X)` 中间已知年份的最大降雨量,再配合年份是否完整连续做四类判定。
luoguP2471
二分ST表区间最值分类讨论
普及+/提高2026-06-21 02:05打开
把每个元素看成最终都会被某个不小于它的相邻块吞并一次,它的最优贡献是左右第一个不小于它的值中的较小者,用单调递减栈即可线性求解。
luoguP4393
单调栈贪心区间dp思维
提高+/省选-2026-06-21 01:59打开
把每个 K 对应的剩余作业看成一个后缀,预处理后缀和与后缀最小值,就能在线性时间内求出删去最小值后的最大平均分。
luoguP4086
后缀和最小值分数比较思维
普及-2026-06-21 01:56打开
先把同一坐标上的星星亮度合并,再把题目转成一维数组上固定长度窗口的最大区间和,用前缀和线性扫描即可。
luoguP3353
前缀和滑动窗口数组模拟
普及-2026-06-21 01:50打开
用线段树维护区间最大值;查询时返回区间最大,更新时在单点位置做 `max(原值, 新值)` 的只升不降修改。
luoguP1531
线段树区间数据结构模板题
普及-2026-06-21 01:44打开
按高度从低到高处理平板,并维护每个单位小格当前最高支撑高度;每块平板左右支柱的长度就是当前高度减去对应边缘小格的最高支撑。
luoguP2003
区间模拟排序推导
普及/提高-2026-06-21 01:40打开
用线段树维护区间里空地数与树苗数,把状态分成老树、空地、树苗三类,就能同时处理整段砍树、局部补种和树苗损失统计。
luoguP1276
线段树区间模拟推导
普及/提高-2026-06-21 01:35打开
用 defaultdict 建立单词到文章编号列表的倒排索引,并在每篇文章内先去重。
luoguP3879
字符串哈希倒排索引trie字典树defaultdictpythoncpp
普及-2026-06-21 01:30打开
把所有模式串插入字典树,并在每个前缀节点记录经过它的模式串数量;查询串走到终点后的计数就是答案。
luoguP8306
字典树字符串模板题
普及/提高-2026-06-21 01:26打开
把每个值左边更大元素的个数记为 $c[x]$,则做完 $k$ 轮冒泡后的逆序对数就是 $sum(max(c[x]-k,0))$,再用树状数组维护 $c[x]$ 的动态分布。
luoguP6186
树状数组逆序对推导思维
提高+/省选-2026-06-21 01:17打开
先找出本来就不必移动的最长严格递增后缀,再用树状数组统计每头前缀奶牛插入有序部分时应后移的步数。
luoguP5200
树状数组排序思维模拟
普及+/提高2026-06-21 01:01打开
先把所有彩珠按坐标打平成 `(位置, 颜色)` 序列并排序,再用双指针维护覆盖全部颜色的最短区间。
luoguP2564
双指针滑动窗口排序思维
普及+/提高2026-06-21 00:56打开
把地板看成容量为 k 的缓存,缺车且地板已满时始终淘汰未来最晚再次被请求的车,再配合下一次出现位置预处理即可得到最优答案。
luoguP3419
贪心模拟推导
普及+/提高2026-06-21 00:50打开
前 k 轮已经能区分所有 x,当且仅当前缀询问的 lcm 等于 lcm(1..n),因此答案就是所有必需质数最高幂第一次被覆盖轮次的最大值。
luoguP8980
数论最大公约数质因数分解推导
提高+/省选-2026-06-21 00:29打开
先把四个面的单位三角形按立体共边关系建成度数不超过 3 的图,再做带父边与值域边界的记忆化搜索,分别取当前节点左右子树的最优解。
luoguP1267
树形dp图论递归构造
提高+/省选-2026-06-21 00:07打开
把树定根后自底向上维护子树向上延伸的最大未截断衰减,若某个儿子子树再经过父边就会达到或超过初始强度,就必须在该儿子处安装放大器。
luoguP1269
树形dp贪心递归
提高+/省选-2026-06-21 00:00打开
利用叶子枝长公式 limb(x)=min((d(x,i)+d(x,j)-d(i,j))/2),递归删去一个叶子并累加其独有边长,最终得到整棵树的总重量。
luoguP1268
递归推导思维
普及+/提高2026-06-20 23:55打开
把所有加密操作按相反顺序依次撤销,其中分别实现栅栏密码、维吉尼亚密码和 QWE 键盘码的逆变换即可还原原文。
luoguP2636
字符串模拟推导
普及/提高-2026-06-20 23:48打开
把字符串复制成两倍长度后,用最小表示法比较两个候选循环位移并整段淘汰较差起点,在线性时间求出字典序最小表示的起点。
luoguP1709
字符串最小表示双指针
普及+/提高2026-06-20 23:40打开
把每种颜色的首末出现位置看成区间,用栈扫描检查区间是否只存在包含关系;最大栈深就是最少轮数。
luoguP3668
单调栈区间扫描线思维构造判定
提高+/省选-2026-06-20 23:35打开
把平台序列建成最大笛卡尔树,递归计算每个子盆地先灌到根高度、再整体上涨的体积时间,从而求出各平台被淹没时刻。
luoguP2897
单调栈笛卡尔树递归模拟思维
提高+/省选-2026-06-20 23:16打开
把“灯亮”和“可达”分开维护,从起点做 BFS;每次开灯后,新亮房间若挨着访问区域就立刻变成可达。
luoguP2845
BFS模拟搜索网格思维
普及+/提高2026-06-20 23:12打开
把“初始朝上”和“初始朝右”两种可能同时打包成一个六维状态,用 BFS 求一套公共指令的最短长度。
luoguP3610
BFS状态压缩最短路搜索网格
提高+/省选-2026-06-20 23:05打开
用 9 位掩码维护每格候选数字,结合数独约束与大小关系反复传播,再按候选最少的格子搜索。
luoguP4573
搜索回溯位运算约束传播数独
提高+/省选-2026-06-20 22:48打开
把每种特性的前缀出现次数都减去第一种特性,转成前缀差分状态;相同状态之间的最远距离就是答案。
luoguP2843
前缀和哈希状态压缩差分思维
提高+/省选-2026-06-20 22:42打开
二分最大位移后,把每个区间转成带最早可接点和最晚失效点的任务,按失效点最小优先贪心推进覆盖前缀。
luoguP8660
二分答案贪心优先队列区间建模
提高+/省选-2026-06-20 21:34打开
枚举罪犯和星期几,在线性扫描证词时判断每个人是否必须恒真或恒假,再检查能否凑出恰好 N 个说谎者。
luoguP1039
枚举字符串模拟逻辑推理
普及+/提高2026-06-20 21:26打开
先在外层 DFS 枚举单顺、双顺、三顺的拆法,再对剩余牌型做记忆化搜索,精确求出最少出牌次数。
luoguP2668
搜索记忆化搜索DFS状态压缩思维
提高+/省选-2026-06-20 21:10打开
每次贪心选择当前能让最多乘客少 1 分钟的那段路,把它的行驶时间减 1;这次收益由提前效果能传播到的连续区间内下车人数决定。
luoguP1315
贪心模拟推导前缀和
提高+/省选-2026-06-20 19:58打开
按低位更重要的顺序给字母分配数字,每次赋值后立刻检查已经能确定的低位列是否满足进位加法,从而提前剪掉大量无效分支。
luoguP1092
搜索递归剪枝模拟
提高+/省选-2026-06-20 19:45打开
先按题目给定优先级把表达式递归下降解析成语法树,再用多组模数代值比较签名,快速判断哪些选项与题干恒等。
luoguP1054
字符串递归数学思维
提高+/省选-2026-06-20 19:26打开
先判断愿望关系能否构成唯一的整环,再在正反两个环序中统计最优旋转能保留多少人不动,答案就是 n 减去这个最大值。
luoguP1053
图论构造环形处理思维
普及+/提高2026-06-20 17:14打开
先在反图上从终点标记可达点,再筛出所有安全点,最后只在安全子图中做 BFS 最短路。
luoguP2296
图论bfs最短路noip
普及+/提高2026-06-20 17:13打开
把树按深度分层后,按层搜索每轮在当前还会感染的点里切掉一个子树,最大化保住的人数。
luoguP1041
搜索dfs思维疑似错题
提高+/省选-2026-06-20 17:07打开
把输入串看成 BWT 的最后一列,排序得到第一列,再用同字符同出现次序建立 LF 映射,从 p 逆推原串。
luoguP1124
字符串排序思维BWT
普及+/提高2026-06-20 16:07打开
按冒号切成 8 组后分别去前导零,再找最前面的最长连续 0000 段,用一次 :: 替换即可。
luoguP2815
字符串模拟
入门2026-06-20 16:03打开
把 a 看成带最早开始时间的单位作业,用大根堆贪心生成最优等待时间,再把大等待与小 b 配对得到最小总代价。
luoguP6155
贪心排序交换论证思维
普及+/提高2026-06-20 15:43打开
把合法区间改写成不存在 x_i>y_j 的冲突对,先用树状数组求每个位置的第一个冲突点,再用双指针维护最长合法区间。
luoguP3522
树状数组双指针单调队列坐标压缩思维
提高+/省选-2026-06-20 15:35打开
按位置排序后,分别用两次单调队列维护左右 D 范围内的最大高度,再判断是否都达到当前高度的两倍。
luoguP3088
单调队列滑动窗口排序思维
普及/提高-2026-06-20 15:30打开
把横纵坐标按 n 分成完整块和残块,利用模 n 余数的一一配对,常数时间统计整块与右下角残块贡献。
luoguP10090
数学计数思维推导
普及/提高-2026-06-20 15:25打开
按固定元素是否出现过来统计不同元素个数之和,把每个长度的贡献化成两段等比数列求和。
luoguP7355
数学计数推导快速幂思维
普及/提高-2026-06-20 15:17打开
把 x 分解成质因子后,每个指数里完整的 3 个一组都能提出到根号外,因此答案是各质因子 p 的 floor(e/3) 次幂之积。
luoguP4446
数学数论质因数分解Pollard Rho
普及+/提高2026-06-20 15:10打开
证明每杯水在第一次烧开前最多只值得被预热到 50 度,于是总温度增量是 100 加上其余 n-1 杯各 50。
luoguP1984
思维推导构造数学
普及/提高-2026-06-20 14:56打开
先判图中是否有孤立点;若没有,就对每个连通块的生成树二染色,直接构造两个互不重叠的覆盖方案。
luoguP3496
图论构造bfs思维
普及+/提高2026-06-20 14:46打开
在模板范围内搜索,并记录每个模格子第一次对应的绝对坐标;若同一模格子被不同绝对坐标到达,就能无限走远。
luoguP1363
BFS图论网格周期python
普及+/提高2026-06-20 14:41打开
把机器人所在格点和朝向一起作为状态做 BFS,并预处理中心能否站在某个格点。
luoguP1126
bfs最短路图论网格模拟
普及+/提高2026-06-20 14:36打开