- 博客(22)
- 收藏
- 关注
原创 动态规划--每日一练
建筑大师最近在跟着数学大师 ljt12138 学数学,今天他学了等差数列,ljt12138 决定给他留一道练习题。ljt12138 首先建了 n 个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为 1 到 n,第 i 个电塔的高度为 h[i]。建筑大师需要从中选出一些电塔,然后这些电塔就会缩到地下去。这时候,如果留在地上的电塔的高度,从左向右构成了一个等差数列,那么这个选择方案就会被认为是美观的。建筑大师需要求出,一共有多少种美观的选择方案,答案模 998244353。
2025-07-15 17:36:58
762
原创 动态规划--每日一练(线性DP:LIS的变形+滑动窗口)
小河可以看作一列格子依次编号为 0 到 N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子 i 时,她只移动到区间 [i+L,i+R] 中的任意一格。对于 100% 的数据,N≤2×105,−103≤Ai≤103,1≤L≤R≤N。第二行共 N+1 个整数,第 i 个数表示编号为 i−1 的格子的冰冻指数 Ai−1。开始时,琪露诺在编号 0 的格子上,只要她下一步的位置编号大于 N 就算到达对岸。在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。
2025-06-04 20:25:31
1101
原创 优化技巧--滑动窗口
大于等于队尾元素对应的值,则弹出队尾,直到队列为空或队尾元素值大于。小于等于队尾元素对应的值,则弹出队尾,直到队列为空或队尾元素值小于。:确保队列中的元素值单调递减 / 递增,队头即为当前窗口的极值。维护数组中特定区间(窗口)内元素特性(如最大值、最小值、和)。元素值单调递减(维护最大值)或递增(维护最小值)。,开始记录队头元素对应的值作为当前窗口的极值。,说明该元素已超出窗口范围,弹出队头。若队头元素下标小于当前窗口左边界。:确保队列中的元素均在当前窗口内。:存储元素下标,确保队列中对应的。
2025-06-04 19:11:48
586
原创 动态规划--每日一练(线性DP:LIS模型的变形)
机器人的移动是指从当前所处的网格移向相邻的网格,即从坐标为 (i,j) 的网格移向 (i−1,j),(i+1,j),(i,j−1),(i,j+1) 四个网格,机器人不能走出整个 n×n 的网格。第一行为 n,m(n≤1000,m≤104),其中 m 表示在这一段时间内出现的鼹鼠的个数,接下来的 m 行中每行有三个数据 time,x,y 表示在游戏开始后 time 个时刻,在第 x 行第 y 个网格里出现了一只鼹鼠。time 按递增的顺序给出。比如有 m 只鼹鼠,排成一排:鼹鼠 1,鼹鼠 2,……
2025-06-04 09:14:08
361
原创 动态规划--每日一练(多重背包计数类DP)
为了在门口展出更多种花,规定第 i 种花不能超过 ai 盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。📍本题题意是要从1~ n 种花中选花,总盆数为m,每一种花的数量上限为a[ i ],求选花的总方案数。对于 100% 数据,有 0<n≤100, 0<m≤100 , 0≤ai≤100。对于 50% 数据,有 0<n≤20, 0<m≤20, 0≤ai≤20。对于 20% 数据,有 0<n≤8, 0<m≤8, 0≤ai≤8。NOIP 2012 普及组 第三题。
2025-05-29 09:24:43
466
原创 动态规划--计数类DP
nk,其中 n1≥n2≥…≥nk, k≥1 ,n1≥n2≥…餐馆虽低端,但是菜品种类不少,有 N 种 (N≤100),第 i 种卖 ai 元 (ai≤1000)。n分别看做n个物体的体积,这n个物体均无使用次数限制,问恰好能装满总体积为n的背包的总方案数。dp[ i ][ j ]表示从前 i 个菜品中选菜,总价格小于等于 j 的方案数。一个正整数,表示点菜方案数,保证答案的范围在 int 之内。表示用不超过 3 的数(1、2、3)组成 5 的方案数。共一行,包含一个整数,表示总划分数量。
2025-05-28 11:55:23
1401
原创 动态规划--每日一练(计数类DP之路径数量)
棋盘上 A 点有一个过河卒,需要走到目标 B 点。同时在棋盘上 C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。棋盘用坐标表示,A 点 (0,0)、B 点 (n,m),同样马的位置坐标是需要给出的。对于 100% 的数据,1≤n,m≤20,0≤ 马的坐标 ≤20。一行四个正整数,分别表示 B 点坐标和马的坐标。NOIP 2002 普及组第四题。
2025-05-24 21:25:56
411
原创 算法--DFS
递归树结构不同固定长度问题的递归树深度固定,通过层数控制;不固定长度问题的递归树深度动态,通过条件(如和、元素个数)控制。参数设计逻辑不同固定长度问题依赖层数和起始下标;不固定长度问题依赖元素下标和当前状态。剪枝策略不同固定长度问题剪枝通常基于剩余元素数量;不固定长度问题剪枝基于动态条件(如和超过目标值)。1.3.5✌️延伸思考是否需要选满固定数量元素?是 → 固定长度问题(层数参数);否 → 不固定长度问题(下标参数)。是否有动态约束条件(如和为 k、元素个数最少)?
2025-05-17 20:37:16
1176
原创 2025.4.22动态规划学习(区间DP)
设dp[ i ][ j ] 表示区间 [ i , j ] 上的最优解,其中 i 和 j 分别是区间的左右端点。这里的最优解可以是最大 / 小值、方案数等,具体含义取决于问题本身。
2025-04-22 16:49:26
1032
原创 动态规划学习之子序列系列(线性DP)
1. 2 明确解题思路本题使用dp的解题思路,从两个方面考虑分别是状态表示和状态计算举个例子:[ 3,1 ,2,1,8,5,6 ]中dp[5]代表以第五个数结尾的上升子序列的集合中的最长序列的长度。其中集合中的内容有{ [ 8 ] , [ 3, 8 ] ,[ 2, 8 ], [1, 8 ] , [ 3 , 2, 8 ] , [ 1 , 2, 8 ] } ,集合中的最长序列的长度为3,所以dp[5]为3.如何划分?
2025-04-17 11:34:44
901
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人