网易笔试(算法平台)9月21日第2题吃葡萄

题目大概意思:
有A、B、C三种葡萄和三个人,第一个人只吃A、B两种葡萄,第二个人只吃B、C两种葡萄,第三个人只吃A、C两种葡萄。
输入三个数a、b、c分别表示A、B、C三种葡萄的个数,请将这些葡萄全部分给三个人,使得吃葡萄最多的人吃的葡萄尽量少,
返回他所吃的葡萄数。
#网易##笔试题目#
全部评论
今天偶然看到这个题很有意思,尝试从数学角度去严格证明下。 三种水果的数量必然可以形成顺序 c >= b >= a 考虑简化情况,假设后面出现的分数都能整除。最后结果当不能整除的时候,应该会差个1。 先考虑最优情况,如果三个人都能任意从三种水果中自由选取, 最优解必然是(a + b + c)/3。 这里值得注意的是,实际最优解不整除,余数可以为1或2。余数为2时,总是可以分给其中两个人各一个。所以实际最后不能整除情况,只可能比整除情况多1。因为为了推导简便,后面都是按照整除处理。 首先c 恒大于 (a + b + c)/3。  因为显而易见的 c - (a + b + c)/3 = ((c - a) + (c - b))/3 >= 0 则当c为一个人分配达到最优解时,c类水果还剩下 c - (a + b + c)/3 = (2c -a - b)/3。 现在问题是,c类剩下的,还能不能保证另外一个人达到最优解 (a + b + c)/3。
1 回复 分享
发布于 2020-06-05 10:31
这道我一开始没做出来,最后几分钟发现其实很简单,就是max(最大值的一半,和的1/3),然后根据能不能整除决定是否+1就行了
点赞 回复 分享
发布于 2019-09-21 17:44
最后一句话没觉得很别扭吗?吃葡萄最多的的人吃的葡萄尽量少
点赞 回复 分享
发布于 2019-09-21 17:41
老哥你做出来这道没?其余题目我1h做完的。这题目也用了1h愣是拿了个egg。我真蠢。
点赞 回复 分享
发布于 2019-09-21 17:40

相关推荐

评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务