题目列表

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

共 1203 题
OJ题号标题标签难度最后更新解析
洛谷P4290
把展开过程倒过来看:区间能折成一个字母当且仅当存在规则 c→xy 与分裂点把区间切两半;按区间长度递推的区间 DP,复杂度 O(L^3)。
动态规划区间 DP字符串
普及+/提高-2026-10-23 23:19
洛谷P1063
先断环成链并复制数组,再设 dp[l][r] 表示一段珠子聚合后的最大能量,枚举最后一次合并的断点。
动态规划区间dp环形处理
普及+/提高-2026-10-23 23:18
洛谷P4316
在有向无环图上逆向定义到达终点的剩余期望长度,利用全期望公式与拓扑序通过记忆化搜索在 O(n+m) 内求解。
动态规划概率与期望记忆化搜索图论
普及+/提高-2026-10-23 23:15
洛谷P1880
把环复制成 2n 长数组,先教会链上的区间 DP(枚举最后一次合并的断点),再枚举所有长度为 n 的起点,同时维护最小与最大合并代价。
动态规划区间dp环形处理
普及+/提高-2026-10-23 23:14
洛谷P1220
把已关灯集合压成包含起点的连续区间 [l,r],用 f[l][r][0/1] 记录停在区间左/右端的最小耗电,区间 DP 一步扩展到相邻端点,O(n^2) 求解。
区间DP动态规划
普及+/提高-2026-10-23 23:09
洛谷P5025
两种解法并列:线段树优化建图 + Tarjan 缩点把区间连边压到 O(log n),在 DAG 上传播可达区间端点;以及不建图的 O(n) 双向扫描,靠「引爆集合是连续区间」和「右向射程在向左闭包时仍有效」直接求端点。
图论线段树tarjan强连通分量双指针
提高+/省选-2026-10-23 17:09
洛谷P3842
行只能单调向下,所以逐行决策;再证明走完一行后最优解必停在该行线段的端点,把每行状态压缩成左、右两个,得到 O(n) 线性 DP。
动态规划线性DP思维
普及2026-10-23 17:02
洛谷P2860
把「任意两点有两条边不相交路线」化归为「没有桥」,删桥缩成边双得到桥树,答案就是桥树叶子数的一半向上取整。
图论tarjan割边边双连通分量
提高2026-10-23 16:34
洛谷P3825
把每场游戏的两种可用赛车建模成 2-SAT 布尔变量,用「禁 A / 禁 B」两种情形覆盖 x 地图的三种取值,2^d 次 Tarjan 判定。
2-SAT图论强连通分量枚举
提高+/省选-2026-10-23 15:28
洛谷P4606
把删点后 S 是否分裂翻译成圆方树上的路径必经点,再用圆点前缀和与虚树环巡游 O(|S|log n) 回答每次询问
圆方树点双连通分量tarjanLCA虚树路径计数
省选/NOI-2026-10-23 14:24
洛谷P4630
圆方树 + 赋权 + 树上路径贡献计数:方点权=BCC大小,圆点-1,树DP统计每点被(s,f)路径经过次数
圆方树点双连通分量树形DP路径计数
提高+/省选-2026-10-23 13:26
洛谷P3469
封锁一个点后,真正新增损失来自它把图切成的多个连通块;用 Tarjan 求割点时顺手统计每个被切下来的子树大小,就能在线性时间算出每个点造成的访问损失。
图论tarjan割点
提高2026-10-23 13:13
洛谷P4447
把每个组看成一条连续链,按实力值递增处理;有多条链可接时接最短的,链比人多时冻结最长的,断档时整段冻结,答案取所有链长的最小值。
贪心堆思维递进python
普及+/提高-2026-10-23 07:23
洛谷P1262
买下一个间谍就能免费得到他整条下游,于是真正要选的是「从哪些人进入」;互相可达的人缩成强连通分量只买最便宜的一个,缩点后 DAG 里只有入度为 0 的分量无人能揭发、必须直接收买。
图论强连通分量tarjanscc缩点dagpython
普及+/提高-2026-10-22 21:52
洛谷P2700
正难则反:把「最小删边代价」翻成「最大保留边权和」,按边权降序并用并查集,两端块都含敌城时才必须删这条边。
并查集贪心最小生成树Kruskal树思维
普及+/提高-2026-10-22 12:30
洛谷P4180
Kruskal 求 MST 后枚举非树边换树边,倍增 LCA 同时维护路径最大与严格次大边权。
严格次小生成树最小生成树倍增LCA并查集Kruskalpython
提高+/省选-2026-10-21 20:30
洛谷P1396
求 s 到 t 路径上最大边权的最小值(瓶颈路),可用 Kruskal、瓶颈 Dijkstra 或二分答案求解。
瓶颈路最小生成树并查集Dijkstra二分答案python
普及2026-10-21 18:20
洛谷P1194
把直接买建成虚拟源点边,把优惠价建成礼物间边,转化为最小生成树。
图论最小生成树Prim建模
普及2026-10-21 14:20
洛谷P1967
多次询问无向图中点对的最大瓶颈路:Kruskal 建最大生成森林,倍增 LCA 上跳时维护路径最小边权,O(log n) 回答每个询问。
最大生成树KruskalLCA倍增瓶颈路图论并查集python
提高+/省选-2026-10-21 12:00
洛谷P1550
把打井建成虚拟水源点到田地的边、铺管建成田地之间的边,问题化为 n+1 点图上的最小生成树,Kruskal 求解。
图论最小生成树Kruskal并查集虚拟源点建模
普及2026-10-21 10:20
洛谷P3403
以最小步长为模建立余数图,Dijkstra 求每类余数最早可达楼层。
同余最短路Dijkstra数学python
提高2026-10-21 09:59
洛谷P3275
把下界约束建成 0/1 边,SCC 判严格环后在缩点 DAG 上求最长路。
差分约束强连通分量DAGpython
提高2026-10-21 08:10
洛谷P3623
两遍 Kruskal:第一遍先加水泥路求鹅卵石路下界 need 并标记被迫边,第二遍放回被迫边、补鹅卵石路到 k 条、水泥路填满,得恰好含 k 条免费路的生成树。
最小生成树并查集Kruskal图论构造
普及+/提高-2026-10-21 00:00
洛谷P2865
Dijkstra 同时维护每点严格不同的最短与次短距离。
次短路Dijkstra最短路python
普及+/提高-2026-10-20 19:50
洛谷P2047
Floyd 同时维护最短距离和路径数,再按经过节点的路径比例计算重要度。
Floyd最短路计数中心性python
提高2026-10-20 17:28
洛谷P1119
按时间增量加入 Floyd 中间点,在线回答当前已重建村庄间最短路。
Floyd离线询问增量算法python
普及+/提高-2026-10-20 16:07
洛谷P6464
Floyd 后枚举传送门端点,逐点对比较原路和两个传送方向。
Floyd枚举全源最短路python
普及+/提高-2026-10-20 15:32
洛谷P1993
把三类作物数量关系统一成差分约束边,全点入队跑 SPFA 判负环,有负环即矛盾。
差分约束负环SPFApython
普及+/提高-2026-10-20 14:35
洛谷P1875
对配方超边做 Dijkstra 式松弛,再按最小成本递增顺序统计最优方案数。
最短路Dijkstra计数python
提高2026-10-20 12:35
洛谷P1144
BFS 分层并在最短层边上累加方案数,支持重边。
BFS最短路计数前向星python
普及+/提高-2026-10-20 10:40
洛谷P5960
把 x_c-x_c'<=y 转成 c' 到 c 的边,初值取 0 全部入队跑 SPFA 做松弛;无负环即有可行解。
差分约束SPFA负环python
普及+/提高-2026-10-20 09:46
洛谷P4568
把免费次数作为分层状态,在 n(k+1) 个状态上运行 Dijkstra。
分层图Dijkstra状态扩展python
提高2026-10-18 23:05
洛谷P1037
对十个数字求变换传递闭包,再把每一位的可达数字数相乘。
传递闭包乘法原理位运算pythoncpp
普及-2026-10-18 19:47
洛谷P3371
用队列优化的 Bellman-Ford(SPFA)求非负权有向图单源最短路,只在距离被改小时重新入队。
SPFA最短路图论队列模板题
普及2026-10-17 15:33
洛谷P14363
以 map 精确分组差异核心、双 Trie DFS 激活和祖先链求和为主解,并对照 AC、二维扫描线与确定性线性做法。
字符串AC自动机字典树离线扫描线树状数组
省选/NOI-2026-10-16 20:04
洛谷P4779
用 heapq 实现带过期状态判断的 Dijkstra,求非负权有向图单源最短路。
Dijkstra最短路heapqpython
普及+/提高-2026-10-16T00:00:00.000Z
洛谷P7073
先按后缀表达式建树并求当前值,再从根向下传播“能否影响根”的标记,这样每个翻转询问都能 O(1) 回答。
栈字符串思维
普及+/提高-2026-10-11 21:56
洛谷P7072
用树状数组维护 0..600 的成绩频率,并通过第 k 小查询在线求当前获奖分数线。
树状数组计数模拟桶排序模板python
普及-2026-10-11 19:49
洛谷P1451
把网格看成图,扫描时每遇到未访问的细胞数字就用四方向 BFS 淹掉整个连通块并把答案加一。
网格BFS连通块搜索flood fill
普及-2026-10-09 21:29
洛谷P1141
同一连通块内所有格子的答案都等于块的大小,对每个未访问格子 BFS 一次并写回答案,询问 O(1)。
BFS连通块网格图论cpp
普及2026-10-09 21:23
洛谷P1596
扫描网格,每遇到未访问水格就用八方向 BFS 淹掉整个连通块并把答案加一。
BFSflood fill连通块网格
普及-2026-10-09 21:09
洛谷P3916
反向建图并按编号从大到小搜索,首次访问时写入该点可达的最大编号。
图论反图DFSpython
普及-2026-10-09 20:01
洛谷P5318
先把每个点的邻接表按升序排序,再用逆序压栈实现非递归 DFS,用队列实现 BFS。
图论DFSBFS排序python
入门2026-10-09 19:30
洛谷P5336-提高+/省选-2026-10-08 00:32
洛谷P9232
反转只影响子串内部,故新串与原串的第一处不同必在区间内:两端字符不同时答案是 [s[l]>s[r]],相同时递归到去掉两端的子区间,按长度递推加滚动数组得到 O(n^2) 时间、O(n) 空间。
动态规划区间 DP字符串递推回文
普及2026-10-07 12:15
洛谷P9715
一个格子的最终颜色由覆盖它的最后一个 t=1 操作决定,没有 t=1 时由第一个操作决定;按行和列分别用并查集求出每个操作负责的格子数,再前缀累加即可。
思维离线并查集计数网格
普及+/提高-2026-10-07 12:15
洛谷P9724
把追逃过程按第一次传送拆成两段:传送前 Pang 固定在 k,是一次带权最短路;传送后在某点 v 沿 v→n 的最短路走,伤害成周期为 d 的等差数列,用公式 O(1) 结算。
图论最短路BFSDijkstra等差数列贪心
提高2026-10-07 12:15
洛谷P9726
断点只可能落在 2n 个区间端点处;交错区间对 l_i<l_j<r_i<r_j 使 r_i 与 l_j 二选一,答案 = 2n − 该二分图的最大匹配。
二分图匹配匈牙利算法König 定理bitset 优化构造
提高+/省选-2026-10-07 12:15
洛谷P9728
不辣菜摆在某个位置的收益只由面前三位教授决定,于是贪心选收益最大的 n-a 个位置即可。
贪心思维贡献法排序构造
普及2026-10-07 12:15
洛谷P9245
跳过一个景点只是把线路上的两段相邻距离换成一段,先用倍增 LCA 求出任意两点在树上的距离,再用总时间加减这三次变化就能 O(1) 得到每个答案。
树倍增LCA图论前缀和
普及+/提高-2026-10-07 12:15
洛谷P9246
砍掉一条边会把树分成两半,所以数对 (a,b) 被分开的充要条件就是这条边在 a 到 b 的路径上;问题变成“哪些边被全部 m 条路径跨过”,用 LCA 加树上点差分一次统计。
树LCA树上差分倍增图论
普及+/提高-2026-10-07 12:15
洛谷P2169
把“同一局域网”正确理解为互相可达即强连通,用迭代 Tarjan 缩点,把分量内部边权变 0,再跑堆优化 Dijkstra 求最短路。
图论最短路tarjanscc强连通分量Dijkstra
普及+/提高-2026-10-07 12:15
洛谷P1325
把小岛转成 x 轴上的覆盖区间,按右端点排序,遇到未被覆盖的区间就把雷达放在它的右端点。
贪心区间贪心排序区间几何浮点数
普及2026-10-07 12:15
洛谷P4036
1. 前缀比较具有二分性 (左对右错) 2. 字符串哈希具有结合律 3. fhq-treap 中序就是字符串原来的序列 4. 利用fhq-treap 的logn 分裂合并的性质维护 动态插入与删除 与 结合律
字符串FHQ Treap字符串哈希二分平衡树
省选/NOI-2026-10-07 12:15
洛谷P17414
把每个位置需要的翻转次数写成除数前缀异或,按下标递增唯一决定每个操作是否选择。
数论异或贪心
普及-2026-10-07 12:15
洛谷P17416
枚举最大值后,把其余 k-1 个数转成最大异或值,用二进制 Trie 在线查询前 k-1 个异或和。
Trie异或贪心排序
普及+/提高-2026-10-07 12:15
洛谷P17234
按 mex 值贡献:分类,把条件转化为区间必须包含所有小于 x 的位置且避开所有 x 的位置。
枚举计数mex区间
普及2026-10-07 12:15
洛谷P1757
把物品按组分类,每组最多选一件,外层遍历组、内层倒序枚举容量、最内层遍历组内物品做 01 转移,保证同组互斥。
动态规划分组背包背包
普及-2026-10-07 12:15
洛谷B4141
筛出≤n的所有素数,再做0/1背包计数取max:dp[j]=max(dp[j], dp[j-p]+1),求最多项数。
动态规划01背包素数
普及-2026-10-07 12:15
洛谷P1064
附件挂主件,对每个主件枚举附件组合(最多2^2种),转成0/1背包做倒序转移。
动态规划01背包分组背包有依赖背包
普及+/提高-2026-10-07 12:15