题解 | #放苹果#
放苹果
https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf?tpId=37&tqId=21284&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fdifficulty%3D2%26page%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&difficulty=2&judgeStatus=undefined&tags=&title=
m, n = map(int, input().split(" ")) # 一次放一个 def dfs(m, idx, plate): if m == 0: return 1 ans = 0 for i, num in enumerate(plate): # 上次放置的idx或者往后放置,同时不要重复放置数值类型 if i >= idx and plate.index(num) == i: plate[i] += 1 ans += dfs(m-1, i, plate) plate[i] -= 1 return ans plate = [0] * n print(dfs(m, -1, plate))