一、题目
二、输入输出
三、示例
四、要求
五、解题思路
六、参考代码
# -*- coding: utf-8 -*-
'''
@File : 2023-B-代表团坐车.py
@Time : 2023/12/23 21:09:04
@Author : mgc
@Version : 1.0
@Desc : None
'''
def count_reception_plans(people, capacity):
# 解析代表团人数列表
people_list = [int(x) for x in people.split(",")]
# 递归函数
def helper(people_list, capacity):
# 终止条件:汽车载客量为0,返回1表示找到一种可行方案
if capacity == 0:
return 1
# 方案数量
count = 0
# 遍历代表团
for i in range(len(people_list)):
# 当前代表团人数
curr_people = people_list[i]
# 当前代表团人数小于等于汽车载客量时,进行递归处理
if curr_people <= capacity:
# 选择当前代表团上车,递归处理剩余的代表团
count += helper(people_list[i+1:], capacity - curr_people)
return count
# 调用递归函数,得到方案数量
plan_count = helper(people_list, capacity)
return plan_count
people = input() # 代表团人数列表
capacity = int(input()) # 汽车载客量
result = count_reception_plans(people, capacity)
print(result)