瓶子变变PPT
问题描述小明是一个数学爱好者,他最近沉迷于一个名为“瓶子变变”的游戏中。游戏规则如下:开始时,有一堆瓶子,每个瓶子里都装有一定数量的珠子。小明每次可以从一...
问题描述小明是一个数学爱好者,他最近沉迷于一个名为“瓶子变变”的游戏中。游戏规则如下:开始时,有一堆瓶子,每个瓶子里都装有一定数量的珠子。小明每次可以从一个瓶子中取出任意数量的珠子,然后将这些珠子分发到其他瓶子中,但不能将珠子放回原来的瓶子。小明的目标是使得每个瓶子中的珠子数量相同。小明对这个游戏非常感兴趣,但他发现对于不同的初始状况,他需要付出不同的代价才能实现目标。代价的计算方式是将每个瓶子中的珠子数量与目标数量的差值的绝对值求和。小明请你帮忙解决以下问题:给定初始瓶子中珠子的数量列表请计算实现目标需要的最小代价给定初始珠子数量列表判断是否存在一种操作方式使得每个瓶子中的珠子数量相同。如果存在,返回 true,否则返回 false输入格式输入为一个含有 n 个整数的列表,表示初始瓶子中珠子的数量。输出格式对于问题 1输出一个整数,表示实现目标需要的最小代价对于问题 2若存在一种操作方式使得每个瓶子中的珠子数量相同,输出 true;否则输出 false示例输入1:输出1:输入2:输出2:说明对于示例 1,最优操作方式如下:从瓶子中取出 4 个珠子将其中 2 个分发到瓶子 1 和瓶子 3,将其数量调整为 [3, 3, 3, 2, 5],此操作代价为 2从瓶子中取出 5 个珠子将其中 2 个分发到瓶子 2 和瓶子 3,将其数量调整为 [3, 5, 4, 2, 5],此操作代价为 1从瓶子中取出 5 个珠子将其中 2 个分发到瓶子 4 和瓶子 5,将其数量调整为 [3, 5, 4, 4, 4],此操作代价为 4总代价为 7。对于示例 2,可以通过以下操作方式使得每个瓶子中的珠子数量相同:从瓶子中取出 2 个珠子将其中 1 个分发到瓶子 4,将其数量调整为 [1, 2, 3, 3, 5, 6]从瓶子中取出 3 个珠子将其中 1 个分发到瓶子 5,将其数量调整为 [1, 2, 2, 3, 4, 6]从瓶子中取出 6 个珠子并将其分发到其他瓶子,将所有瓶子的数量调整为 [3, 3, 3, 3, 3, 3]因此返回 true。