掘友等级
获得徽章 0
#刷题交流# 帖子吸引力最大化
定义状态:使用一个二维数组 dp,其中 dp[i][j] 表示在前 i 个帖子中,是否可以使得点赞数和点踩数的差为 j。
状态转移:对于每个帖子,可以选择将其包含在组合中或不包含在组合中。因此,状态转移方程可以表示为:
dp[i][j] = dp[i-1][j] or dp[i-1][j - (a[i-1] - b[i-1])]
初始化:dp[0][0] = True,表示不选择任何帖子时,点赞数和点踩数的差为 0。
结果:需要找到 dp[n][j] 中 j 的最大值,使得 dp[n][j] 为 True。
#刷题交流# 小c的数组构造
计算总和:首先计算数组 a 的总和 suma。
生成组合:使用回溯或动态规划的方法生成所有可能的数组 b,确保每个 bi 不等于 ai,并且 b 的总和等于 suma。
计数:统计满足条件的数组 b 的数量,并对 109+7 取模。
#刷题交流# 数组调整
平衡:每次操作实际上是将数组中的元素进行平衡调整。最终的目标是使得数组中的元素尽可能接近某个值(众数)。
中位数:通过将数组排序后,中位数是一个关键点。因为中位数是使得数组中元素与中位数的差值之和最小的值。
#刷题交流# 国际象棋跳跃问题
判断象是否可以直接到达:如果 |x2 - x1| == |y2 - y1|,则象可以直接一步到达,返回 1。
如果象无法直接到达:使用马的跳跃来调整位置,使得象可以一步到达。
由于马的跳跃有8种可能的方向,可以通过一次马的跳跃将位置调整到象可以一步到达的位置。
#刷题交流# 字符串最短循环子串
遍历可能的子串长度:从1到字符串长度的一半,尝试每一个可能的子串长度。
生成子串:对于每一个可能的子串长度,生成对应的子串。
拼接子串:将生成的子串重复拼接,直到拼接后的字符串长度不小于原始字符串的长度。
比较拼接后的字符串与原始字符串:如果拼接后的字符串与原始字符串完全相同,则找到了最短的子串。
返回结果:如果找到符合条件的子串,返回该子串;否则,返回空字符串。
#刷题交流# 打卡题目: 英雄组合通关策略
遍历每组英雄,找到每组英雄中武力值最小的英雄和最大的英雄。
计算所有组中最小武力值的总和,作为最小可能值。
计算所有组中最大武力值的总和,作为最大可能值。
#刷题交流# 工厂产能规划,初始化:初始天数为0。
初始蛋糕总数为0。
初始机器数为 ( m ),初始工人数为 ( w )。
循环:每天计算当前的蛋糕生产量 ( m \times w )。
将生产的蛋糕加到总蛋糕数中。
检查是否可以购买额外的机器或工人:
如果当前蛋糕总数足够购买至少一个机器或工人,则进行购买。
购买后更新机器和工人的数量,并从总蛋糕数中扣除相应的成本。
检查是否已经完成订单:
如果总蛋糕数达到或超过 ( n ),则返回当前天数。
如果未完成订单,天数加1,继续循环。
#刷题交流# 取碗顺序问题,
初始时,栈中没有任何碗。
按照顺序遍历给定的取碗顺序。
对于每个取碗操作,需要判断当前栈顶的碗是否是要取的碗。
如果是,则直接从栈顶取走。
如果不是,则需要从剩余的碗中找到这个碗,并将其之前的所有碗都压入栈中。
#刷题交流# 卡牌对战游戏策略,使用两个列表 x 和 y 分别表示小C和对手的卡牌武力值。对这两个列表进行排序,以便于进行比较。
#刷题交流# 徒步旅行补给问题,这题可以使用一个数组来存储每天的食物价格。由于需要在每天决定购买多少食物,并且需要考虑当前携带的食物数量,因此可以使用动态规划(DP)来解决这个问题。
下一页