我试着解决关于的实践问题问题,而我想出的解决方案似乎是错误的,我真的不知道/不明白为什么。这个问题基本上要求我们在分享了n个糖果后,把剩下的糖果数还给m个孩子。所有的孩子都应该有相同数量的糖果,每个孩子都必须得到尽可能多的糖果。
示例(+思想过程) :给出了5袋糖果和2只儿童糖果,每个包包含5个糖果(即5 5 5 5E 210E 1115E 212)。分享所有的糖果,这样每个孩子都能得到最大数量的糖果,所有的孩子都能得到同等数量的糖果。我们开始轮流一次一个孩子分享糖果。到两个孩子每人收到12块糖的时候,我们只剩下1块糖了。因为我们不能把一颗糖分成两半,所以我们返回1作为其余的。
输入采用以下格式:
输入的第一行给出了测试用例的数量,接下来是T. T测试用例。
每个测试用例由两行组成。每个测试用例的第一行包含两个整数:整数N,糖果袋的数量,以及M,孩子的数量。
下一行包含N个非负整数C,C1,…,CN表示数组C,其中第一个整数表示第一个袋子中糖果的数量。
下面是一个示例;有2测试用例:
2
7 3
1 2 3 4 5 6 7
5 10
7 7 7 7 7在第一个测试用例中,有7包的糖果和3儿童共享的糖果。糖果袋1有1糖果,糖果袋2有2糖果,糖果袋3有3糖果,糖果袋4有4糖果,糖果袋5有5糖果,糖果袋6有6糖果,糖果袋7有7糖果。
在第二个测试用例中,有5糖果和10儿童共享糖果。所有5个糖果袋中各有7个糖果。
预期输出的格式为:
Case #1: 1
Case #2: 5解释/思维过程
在第一个测试用例中,总共有28个糖果。我们必须在三个孩子之间平等地分享所有的28个,并把剩下的作为答案。我们可以开始分享糖果,我们发现在所有的孩子都收到了9块糖果之后,我们剩下了1块糖果,我们不能分享/中断/切成3等于(1/3)的糖果,所以我们返回1作为第一个测试案例的答案。
在第二个测试用例中,总共有35个糖果。我们必须在10个孩子之间平均分享所有的35个糖果。在给每个孩子最多3个糖果后,我们发现我们只剩下5个糖果,我们不能在10个孩子之间分享/分/切5个糖果,因此我们返回5作为第二个测试案例的答案。
这是我的代码(在Python3中)
num_testcases = int(input())
for etc in range(num_testcases):
n, m = map(int, input().split())
candies = input().split()
candies_arr = [int(i) for i in candies]
result = sum(candies_arr) % m
print('#Case {}: {}'.format(etc+1, result))我真的很想学习/理解为什么我的代码不能被接受为正确的答案。我可能低估了问题的难度,我的思维过程可能是错误的。谢谢你们抽出时间来,我希望你们能给我一个积极的答复。
诚挚的问候。
发布于 2022-10-12 15:04:51
您的输出格式不正确。
这就是你要用的:
print('#Case {}: {}'.format(etc+1, result))你真正需要使用的是:
print('Case #{}: {}'.format(etc+1, result))https://stackoverflow.com/questions/74044018
复制相似问题