PROBLEM SET
动态规划
按知识点筛选题目,系统巩固该考点。
题目列表
共 638 题
A67167
求两个长度为 n 序列的最长公共子序列(LCS)长度时,可以使用滚动数组将空间复杂度从 O(n2)优化到 O(n)。
2025年
--
--
A67149
0/1 背包(每件物品最多选一次)问题通常可用一维动态规划求解,核心C++代码如下。则下面说法正确的是( )。for each item (w, v)
2025年
--
--
A67148
以下关于动态规划的说法中,错误的是
2025年
--
--
A67147
路径覆盖
2025年
--
--
A67146
道具商店
2025年
--
--
A67137
小杨在玩一个闯关游戏,从第 1 关走到第 4 关。每一关的体力消耗如下(下标表示关卡编号): cost = [ 0, 3, 5, 2, 4 ] ,其中 cost[i] 表示到达第 i 关需要消耗的体力, cost[0]=0 表示在开始状态,体力消耗为 0。小杨每次可以从当前关卡 前进 1 步或 2 步。按照上述规则,从第 1 关到第 4 关所需消耗的最小体力为 7。
2025年
--
--
A67900
小朋友们去邻里拜年,每个家里有不同数量的糖果。规则是:不能连续进入两个相邻的房子(即不能同时取相邻两家的糖果)。目标是拿到最多糖果。以下是代码实现,请补全横线。1 int visit(vector<int>& nums) {
2026年
--
--
A67899
元宵节晚上,小朋友沿着一条发光石板路前进,每次可向前走 1 块或 2 块石板。动态规划定义如下:dp[i] = dp[i - 1] + dp[i - 2] ,下面关于 dp[i] 的含义最合适的是( )。
2026年
--
--
A67890
下列代码实现了一个0-1背包的一维动态规划代码,内层循环是经典的逆序写法。若将内层循环改成正序遍历(即 for (int j = w[i]; j <= W; j++) ),仍能得到正确答案。1 int main() {
2026年
--
--
A67889
在动态规划问题中,状态空间相同且没有重复计算的情况下,“状态转移方程+递推”与“递归+记忆化搜索”的时间复杂度通常相同。
2026年
--
--
A67888
选数
2026年
--
--
A67875
如果一个最值问题可以用动态规划在多项式时间内求解,那么也一定存在一种贪心策略,可以在多项式时间内求得最优解。
2026年
--
--
A67862
在使用Floyd算法求任意两点间最短路径时,时间复杂度为O(V3)。若在某次算法执行前,已经用 Dijkstra 算法正确求出了所有点对的最短路并存入了 dist 数组。如果此时继续对该 dist 数组执行一次完整的 Floyd 算法过程(无任何提前终止),执行完毕后 dist 数组内的值( )。
2026年
--
--
A67861
下列代码试图实现Floyd算法求所有点对之间的最短路径,横线处应填入( )。1 void floyd(int n, int dist[][MAXN]) {
2026年
--
--
A67851
消息查找
2026年
--
--
A60969
小朋友们去邻里拜年,每个家里有不同数量的糖果。规则是:不能连续进入两个相邻的房子(即不能同时取相邻两家的糖果)。目标是拿到最多糖果。以下是代码实现,请补全横线。1 def visit(nums)
2026年
--
--
A60960
以下代码实现了0-1背包问题的一维动态规划解法,内层循环采用经典的逆序遍历方式。若将内层循环改为正序遍历(即 for j in range(w[i], W + 1): ),仍能得到正确答案。1 def knapsack_01()
2026年
--
--
A60959
在动态规划问题中,状态空间相同且没有重复计算的情况下,“状态转移方程+递推”与“递归+记忆化搜索”的时间复杂度通常相同。( )
2026年
--
--
A60958
选数
2026年
--
--
A1860
[NOI2009] 管道取珠
NOI / 2009
提高+/省选-
--