【华为OD】2024年C、D卷真题集:最新的真题集题库 C/C++/Java/python/JavaScript
【华为OD】2024年C、D卷真题集:最新的真题集题库 C/C++/Java/python/JavaScript-CSDN博客
JS、python、Java、C、C++代码实现:
【华为OD】D卷真题200分:会议接待 JavaScript代码实现[思路+代码]-CSDN博客
【华为OD】D卷真题200分:会议接待 python代码实现[思路+代码]-CSDN博客
【华为OD】D卷真题200分:会议接待 Java代码实现[思路+代码]-CSDN博客
【华为OD】D卷真题200分:会议接待 C语言代码实现[思路+代码]-CSDN博客
【华为OD】D卷真题200分:会议接待 C++代码实现[思路+代码]-CSDN博客
题目描述:
某组织举行会议,来了多个代表团同时到达,接待处只有一辆汽车,可以同时接待多个代表团,为了提高车辆利用率,请帮接待员计算可以坐满车的接待方案,输出方案数量。
约束:
1、一个团只能上一辆车,并且代表团人数(代表团数量小于30,每个代表团人数小于30)小于汽车容量(汽车容量小于100)
2、需要将车辆坐满
输入描述
第一行 代表团人数,英文逗号隔开,代表团数量小于30,每个代表团人数小于30
第二行 汽车载客量 ,汽车容量小于100
输出描述
坐满汽车的方案数量
如果无解输出0
示例1
输入输出示例仅供调试,后台判题数据一般不包含示例
输入
5,4,2,3,2,4,9
10
输出
4
说明
解释 以下几种方式都可以坐满车,所以,优先接待输出为4
[2, 3, 5]
[2, 4, 4]
[2, 3, 5]
[2, 4, 4]
备注
各代表团人数5,4,2,3,2,4,9
汽车载客量 10
输出 4
解释 以下几种方式都可以坐满车,所以,优先接待输出为4
[2, 3, 5]
[2, 4, 4]
[2, 3, 5]
[2, 4, 4]
7878688
+---+
3 | | ++ + +---|
| | | 3 + 6 + | + | +
| + | | + + + | + | +
| + | +---+ + + +++++ + + + | +
| + | + | + +----+ | | + + + | +
| + 3 | + | + + + 2 | | 2 + + + | +
| + | + | + + + | | + + + | +
| +---+ + | | | + ----+ | +---+ | | + | +
| | + | | | + | | | | | | + | +
| 1 | + | 8 | | + 1 | | | 1 | | 1 | | + | +
| | + | | | + | | | | | | | + | +
| +---+ + +---+ | ++---+ ++ +---+ +---+ | + | +
| | + | | | ++ | | |+ | +
|0 | + | 0 | 0 | ++ | 0 | |+ | +
| | + | | | ++ | | |+ | +
+---+ + +-------+ +---+| +|+ | +
+ + | +
0 1 2 3 4 5 6 7 8 9 10 11 12 + v: w u m u 1 0 2 4
题目解析:
使用递归来实现即可
代码实现:
cnt = 0
def main():
nums = list(map(int, input().split(',')))
target = int(input())
if target == 0:
print(0)
return
getCnt(nums, 0, 0, target)
print(cnt)
def getCnt(nums, pos, sum, target):
global cnt
if pos != len(nums):
getCnt(nums, pos + 1, sum, target)
tmp = sum + nums[pos]
if tmp == target:
cnt += 1
return
elif tmp < target:
getCnt(nums, pos + 1, tmp, target)
if __name__ == "__main__":
main()
标签:200,target,nums,真题,代码,OD,+---+
From: https://blog.csdn.net/mars1199/article/details/139426394