柿子饼同学 发表于 2022-7-31 19:01:56

一个排列组合的题

本帖最后由 柿子饼同学 于 2022-7-31 19:03 编辑


求解, 这题怎么做
谢谢{:10_266:}

tommyyu 发表于 2022-7-31 22:12:08

本帖最后由 tommyyu 于 2022-8-1 10:20 编辑

这道题应该是NOIP第一轮的题,我感觉枚举就行
过程:
00008 00017 00026 00035 00044 00116 00125 00134 00224 00233 01115 01124 01133 01223 02222 11114 11123 11222 共18种

傻眼貓咪 发表于 2022-8-3 19:56:12

M = 8
K = 0

# a, b, c, d, e 共 5 个袋子 (N = 5)
for a in range(M, -1, -1):
    for b in range(M, -1, -1):
      for c in range(M, -1, -1):
            for d in range(M, -1, -1):
                for e in range(M, -1, -1):
                  if a + b + c + d + e == M and a >= b >= c >= d >= e:
                        K += 1
                        print(a, b, c, d, e, f"({K})")
8 0 0 0 0 (1)
7 1 0 0 0 (2)
6 2 0 0 0 (3)
6 1 1 0 0 (4)
5 3 0 0 0 (5)
5 2 1 0 0 (6)
5 1 1 1 0 (7)
4 4 0 0 0 (8)
4 3 1 0 0 (9)
4 2 2 0 0 (10)
4 2 1 1 0 (11)
4 1 1 1 1 (12)
3 3 2 0 0 (13)
3 3 1 1 0 (14)
3 2 2 1 0 (15)
3 2 1 1 1 (16)
2 2 2 2 0 (17)
2 2 2 1 1 (18)

柿子饼同学 发表于 2022-8-3 21:29:43

傻眼貓咪 发表于 2022-8-3 19:56


懂了 , 枚举
页: [1]
查看完整版本: 一个排列组合的题