假设我们有两个包含 n 个元素的数组 A 和 B。考虑一个操作:选择两个索引 i 和 j,然后将第 i 个元素减少 1,并将第 j 个元素增加 1。执行操作后,数组的每个元素必须是非负的。我们想使 A 和 B 相同。我们必须找到使 A 和 B 相同的操作序列。如果不可能,则返回 -1。因此,如果输入类似于 A = [1, 2, 3, 4];B = [3, 1, 2, 4],则输出将为 [(1, 0), (2, 0)],因为…… 阅读更多
假设我们有两个数字 c 和 d。Amal 最初有两个数字 a 和 b,两者都为零。Amal 想对它们执行一些操作。在执行每个操作之前,会选择一个正整数 k,然后用它来执行以下操作之一:- 将数字 k 加到 a 和 b 中,或者 - 将数字 k 加到 a 并从 b 中减去 k,或者 - 将数字 k 加到 b 并从 a 中减去 k。我们必须找到使 a 和 b 分别等于 c 和 d 所需的最小操作数。如果不可能,则返回… 阅读更多
假设我们有两个数字 l 和 r。有一家商店,我们想以折扣价出售包含 'a' 个食物的食品容器,并且一些顾客想购买 x 个食物。顾客遵循贪婪策略:他以折扣价购买 floor(x/a) 包然后想逐个购买剩余的 (x mod a) 食物。但顾客很贪婪,所以如果他想逐个购买 (x mod a) 食物,并且碰巧 (x mod a) ≥ a/2,那么他决定购买整包 a 个食物。顾客… 阅读更多
假设我们有一个包含 n 个元素的数组 A 和另一个数字 k。有 n 堆糖果。第 i 堆有 A[i] 个糖果。我们可以在两个索引 i 和 j (i != j) 上执行操作,然后将另一个 A[i] 个糖果添加到 A[i](A[i] 不会减少)。我们可以执行此操作任意多次,但不幸的是,如果某些堆包含严格超过 k 个糖果,我们便无法再执行操作。我们必须找到我们可以执行操作的最大次数。因此,如果输入类似于… 阅读更多
假设我们有一个包含 n 个元素的数组 A 和一个数字 m。有 n 个学生参加考试。最高可能分数是 m。A[i] 是第 i 个学生的分数。我们可以操纵每个学生的分数,但必须满足条件。分数不会超过 m,所有分数都是整数,并且所有学生平均成绩不变。如果我们想最大化第一人的分数,我们可以给出的最高可能分数是多少。因此,如果输入类似于 A = [1, 2, 3, 4];m = 10,则… 阅读更多