题解:蓝桥云课 4124 分糖果
【题目来源】
蓝桥云课:1.分糖果 - 蓝桥云课
【题目描述】
两种糖果分别有9个和16个,要全部分给7个小朋友,每个小朋友得到的糖果总数最少为2个最多为5个,问有多少种不同的分法。糖果必须全部分完。
只要有其中一个小朋友在两种方案中分到的糖果不完全相同,这两种方案就算作不同的方案。
【代码详解】
#ans表示方案数
ans = 0
def dfs(depth, n, m):
#depth:第几个小朋友
#n:第一种糖果剩余量
#m:第二种糖果剩余量
#当分完所有小朋友后保证手上没有糖果
if depth == 7:
if n == 0 and m == 0:
global ans
ans += 1
# print(ans)
return
#枚举当前小朋友的糖果可能性
#枚举第一种糖果
for i in range(0, 6):
#枚举第二种糖果
for j in range(0, 6):
#第depth个小朋友有i个第一种,j个第二种
if 2<=i+j<=5 and i<=n and j<=m:
dfs(depth+1, n-i, m-j)
dfs(0, 9, 16)
print(ans)
【运行结果】
5067671
浙公网安备 33010602011771号