摘要: 思路 这题可以用 DP 做。题目中一共存在 3 个参数 \(s,n,m\),我们要求的是在 \(n\) 个城堡中总共派遣 \(m\) 名士兵的最大得分。由此我们可以得出,DP 状态的定义与 \(n,m\) 有关。 所以我们设计 DP 状态:\(dp[i][j]\) 表示前 \(i\) 个城堡中,总共 阅读全文
posted @ 2026-01-31 20:06 2789617221guo 阅读(4) 评论(0) 推荐(0)
摘要: 题目大意 在一个平面直角坐标系上设置 \(n\) 个点,第 \(i\) 个点的坐标为 \((x_i,y_i)\)。给定 \(k\),求一个恰有 \(k\) 个点对 \((i,j)\),满足这 2 个点的欧几里得距离和曼哈顿距离相等的设点方案。 题目思路 我们先思考在何种情况下会满足题目需要的条件,即 阅读全文
posted @ 2026-01-23 21:24 2789617221guo 阅读(3) 评论(0) 推荐(0)
摘要: 本题做法 树形DP+背包DP。 思路 这题中可能存在不止一棵树,为了方便处理,我们将所有树的根节点都连接到父节点0,统一成一棵树处理,此时\(M\)应该加1。 本题中,我们可以将一门课看作“一个背包问题中的物品”,其体积、价值分别为\textbf{1}和\(s\)。为什么体积是1呢?因为一门课会占据 阅读全文
posted @ 2026-01-09 21:42 2789617221guo 阅读(3) 评论(0) 推荐(0)
摘要: 本题做法 DP。 思路 定义 \(dp[i][j]\) 表示前 \(i\) 种花摆好之后一共摆了 \(j\) 盆花的方案数。则有状态转移方程: \[dp[i][j]=\sum_{k=0}^{\min(j,a[i])}{dp[i-1][j-k]} \]直接按照上面的算,最终输出 \(dp[n][m]\ 阅读全文
posted @ 2026-01-01 11:57 2789617221guo 阅读(8) 评论(0) 推荐(0)
摘要: 本题做法 区间 DP。 思路 这题我们可以用区间 DP 来求解。令 \(dp[i][j]\) 表示第 \(i\) 个零食到第 \(j\) 个零食所可以得到的最大价值,那么由于 \(dp[i][j]\) 可以由 \(dp[i+1][j]\) 和 \(dp[i][j-1]\) 转移而来(可以自己思考一下 阅读全文
posted @ 2025-08-29 10:32 2789617221guo 阅读(8) 评论(0) 推荐(0)
摘要: 本题做法 模拟,two-pointers。 思路 首先因为题目中的项链是一个环形,而在环形上面处理问题是比较麻烦的,所以我们需要将环形转化为一条直线。我们可以将整个字符串复制一遍放在末尾,然后遍历开头为 \(i=1,2,\cdots, n\) 的项链(即第 \(i\sim i+n-1\) 个珠子)就 阅读全文
posted @ 2025-08-28 14:47 2789617221guo 阅读(16) 评论(0) 推荐(0)
摘要: 本题做法 分组背包 DP。 思路 这题是经典的分组背包模板题。我们可以对每个物品的所属组和对每个组的物品数量及具体物品进行记录,因为每组至多只能选择 1 个物品,所以我们可以枚举组数的同时对当前组内的第几个物品进行枚举,然后接下来就和普通的 0-1 背包 DP 差不多了。 代码 #include<b 阅读全文
posted @ 2025-08-27 20:27 2789617221guo 阅读(18) 评论(0) 推荐(0)
摘要: 本题做法 完全背包 DP。 思路 这题可以转化成完全背包 DP 问题来解答。设 \(dp[i][j]\) 表示枚举到 \(i^4\) 时和为 \(j\) 的最少四次方数个数,则每个四次方数的本身可以抽象为物体的体积,每个物体的价值为 1。 由于 \(1\le m\le 10^5\),所以我们最多只需 阅读全文
posted @ 2025-08-09 15:08 2789617221guo 阅读(14) 评论(0) 推荐(0)
摘要: 本题做法 0-1 背包 DP。 思路 定义 \(dp[i][j]\) 表示在前 $i 首歌曲是否可以达到音量 \(j\)(是的话为 \(\text{true}\),否则为 \(\text{false}\))。因为音量 \(j\) 可以由音量 \((j+c[i])\) 降低 \(c[i]\) 或者由音 阅读全文
posted @ 2025-08-06 14:31 2789617221guo 阅读(51) 评论(0) 推荐(0)
摘要: 本题做法 0-1 背包 DP。 思路 这道题是 0-1 背包 DP 的变种,与模板的区别就是价值等于代价。 其他的跟 0-1 背包 DP 的模板没什么区别的,直接按照模板打上去就行了。 代码 #include<bits/stdc++.h> typedef long long ll; typedef 阅读全文
posted @ 2025-07-29 21:55 2789617221guo 阅读(10) 评论(0) 推荐(0)