妈妈分糖算法:N 颗糖果重量不同,如何平分?

请求哪位好心的大佬,给点思路,或者代码,原文如下:

妈妈从超市买了 N 颗糖果来分给两个调皮孩子,但是由于糖果是散装的,每颗糖果的重量可能不一样,如果不能恰好将这N颗糖果平分(差一丢都不行,且每颗糖果不可拆分),两熊孩子可能会上房揭瓦。为了保护住宅的完整性,请你判断这 N 颗糖果能否平分,只要两个熊孩子所得糖果的重量总和相等,即为平分。

输入格式:

  • 第一行一个正整数T(T<20),表示样例个数。

随后T组案例:

  • 第一行一个整数N,(2<=N<=100)
  • 第二行N个整数,每个数(1<=ai<=100)表示每颗糖果的重量。

输出格式:

  • 对于每个样例,输出1表示可平分,否则输出0。

输入样例:

2
6
1 1 1 1 1 5 
5
2 6 10 7 3

输出样例:

1
0

image.png

阅读 2.7k
2 个回答

没有你想的那么复杂,其实关键点在

  1. 找到总和的平均数
  2. 在可能值中,找到能恰好凑出平均数的组合(只要有一个即可)

对于1加总后除以2即可,如果得数不能被整除(为偶数,则直接可以返回0)
对于2则只能用搜索算法啦,不过因为可能数比较小2<=N<=100,也有对应的具体方法,但已经比原来降维了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题