"""
设计:Python程序设计
作者:初学者
日期:2022年 03月 24日
"""
# 例95 春游安排车辆问题
# 1.问题描述
# 有n组小朋友准备去春游,数组a表示每一组的人数,保证每一组不超过4个人,现在有若干车辆,每辆车最多只能坐4个人,
# 同一组的小朋友必须坐在同一辆车上,同时每辆车可以不坐满,问最少需要多少辆车才能满足小朋友的出行需求。
# 2.问题示例
# 给定a=[1,2,3,4],意为有4个组,每个组分别有1,2,3,4个小朋友,输出为3,具体方案为第1与第3组拼车,其他组各自组一辆车
# 给定a=[1,2,2,2],意为有4个组,每个组分别有1,2,2,2个小朋友,输出为2,具体方案为第1组与第2组拼车,第3,4组拼车。
# 3.代码实现
class Solution:
def get_carpooling(self, a):
count = [0 for i in range(0, 5)]
for i in range(len(a)):
count[a[i]] = count[a[i]] + 1
count[1] = count[1] - count[3]
if count[i] % 2 == 1:
count[2] = count[2] + 1
count[1] = count[1] - 2
res = count[4] + count[3] + count[2] / 2
if count[1] > 0:
res = res + count[1] / 4
if not count[1] % 4 == 0:
res += 1
return int(res)
# 主函数
if __name__ == '__main__':
s = Solution()
a = [1, 2, 3, 4]
print("小朋友的分组:", a)
print("至少需要:", s.get_carpooling(a), "辆车")
春游安排车辆问题
于 2022-03-24 21:09:41 首次发布