- 博客(6)
- 收藏
- 关注
原创 01背包 暨 洛谷 P1164 小A点菜(递归题单)
本文以洛谷P1164小A点菜为例,探讨了01背包问题的动态规划解法。文章首先通过递归思路分析状态定义和转移方程,强调递归与DP的关联性,并通过购物示例解释回溯过程。接着对比二维和一维数组实现,详细说明状态转移方程的设计思路。最后讨论了如何优化空间复杂度,将二维数组简化为一维数组。文章通过具体代码示例和逐步分析,帮助读者理解01背包问题的核心思想与实现方法。
2025-07-04 00:44:17
1090
原创 Codeforces C. Left and Right Houses
思路:空间换时间,直接暴力即可。核心就是暴力得到基础上看一下是否能让左右同时满足,在满足的区间在中找到最优的那个。设立四个数字,分别代表,道路左边的0的个数,道路左边的1的个数,道路右边的0的个数,道路右边的1的个数。分别从正反两个方向记录当道路在某一个位置的时候道路左右两边的状态,只要满足就存起来,再在满足条件的区间中找到最符合最小化条件的(这里注意用浮点型,一位当例如3/2时,虽然0和2都满足但是2要相对更小一点)
2025-06-30 12:14:19
478
原创 Codeforces C. Earning on Bets
思路:先看这道题的数量级会发现很小,所以时间复杂度可能会很高。这倒题主要用到了数学,核心是用到了最小公倍数。首先可以对第一个样例举几个例子,例如你可以让这n个结果下注的硬币都为1,会发现总硬币数为3大于第二个结果的下注数量,然后对前两种结果也就是3和2求最小公倍数是6,他们花费的总硬币是5(第一种结果花费两个硬币,第二种结果花费三个硬币)符合条件,在对这个6和7运算发现也可以满足,其实也就是这三个数的最小公倍数。最小公倍数为42,花费的硬币是14+21+6 = 41个,其他的案例也是如此
2025-06-29 00:24:02
611
原创 Codeforces B. Bowling Frame
思路:这是一道有关二分搜索的题目,核心在于如何思考构成这个保龄球瓶阵的方法。正解是选择选择黑色瓶子的和,看是满足边长为几的从1到这个数的和,输出即可。这里可以举几个例子,例如我要构成三行,那么就一共需要6个瓶子,那么组合就是(先黑后白)“0,6”,“1,5”,“2,4” ,“3,3”,“4,2”,“5,1”,“6,0”;对于这几种情况,无论如何组合都会满足边长为3的情况,其他情况也是,只要满足黑白瓶子满足大于等于从1到某个数的和,那么这个数的最大值就会是答案。这里注意一个细节,就是w和h最大都为1e
2025-06-27 13:02:15
424
原创 Codeforces C. Boring Day
这道题我一看到从顶部就感觉与数据结构有关,核心是队列,通过队列来维护一组数据的大小,当满足条件时就用计数器记录一下,不满足就用队列处理看是否能处理成满足条件。这里处理队列主要是应用于当队列的总值大于最大限度即r时进行处理。 这里也可以用双指针来写这道题目。
2025-06-26 20:52:31
544
原创 个人题解:Codeforces B. Substring and Subsequence
思路:一到字符串处理加暴力的题目,核心思路就是题目中给出的子串和子序列的提示,其中子串是原字符串中相连字母组成的,子序列可以不为原字符串中相连字母组成,注意题目中说的a的子串和b的子序列(真. 没看到)。因为a为子串,所以我们需要确保字符串a是相连的,那么就从b的第一个字母开始寻找与a相同子串的最大长度(例如:aabab 与 bbab,显然后面的bab为公共子串),记录公共子串的最大长度为amax,那么b串中不包含公共子串的部分就是len2 - amax(代码中有),再加上原本a子串的长度即可得到符合条
2025-06-26 00:00:30
468
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人