烤鸡#洛谷

题目背景

猪猪 Hanke 得到了一只鸡。

题目描述

猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 10 10 种配料(芥末、孜然等),每种配料可以放 1 1 1 3 3 3 克,任意烤鸡的美味程度为所有配料质量之和。

现在, Hanke 想要知道,如果给你一个美味程度 n n n ,请输出这 10 10 10 种配料的所有搭配方案。

输入格式

一个正整数 n n n,表示美味程度。

输出格式

第一行,方案总数。

第二行至结束, 10 10 10 个数,表示每种配料所放的质量,按字典序排列。

如果没有符合要求的方法,就只要在第一行输出一个 0 0 0

样例 #1

样例输入 #1

11

样例输出 #1

10
1 1 1 1 1 1 1 1 1 2 
1 1 1 1 1 1 1 1 2 1 
1 1 1 1 1 1 1 2 1 1 
1 1 1 1 1 1 2 1 1 1 
1 1 1 1 1 2 1 1 1 1 
1 1 1 1 2 1 1 1 1 1 
1 1 1 2 1 1 1 1 1 1 
1 1 2 1 1 1 1 1 1 1 
1 2 1 1 1 1 1 1 1 1 
2 1 1 1 1 1 1 1 1 1

提示

对于 100 % 100\% 100% 的数据, n ≤ 5000 n \leq 5000 n5000

num= int(input())
value_ans = []
value_sum = 0
if num>=10 and num<=30:
    mapp = [1, 2, 3]
    for a in mapp:
        for b in mapp:
            for c in mapp:
                for d in mapp:
                    for e in mapp:
                        for f in mapp:
                            for g in mapp:
                                for h in mapp:
                                    for i in mapp:
                                        for j in mapp:
                                            if a + b + c + d + e + f + g + h + i + j == num:
                                                value_ans.append(list([a, b, c, d, e, f, g, h, i, j]))
                                                value_sum += 1
    if value_sum!=0:
        print(value_sum)
        for item in range(value_sum):
            print_ans=value_ans[item]
            for j in range(10):
                print(print_ans[j],end=' ')
            print()
else:
    print(0)

这道题目就是提单的名字直接爆力搜索。注意的是如果美味超过了三十或者小于十都是无法构成的,可以特殊判断进行直接输出即可。再就是输出的时候,输出的列表是含有逗号和中括号的,这样子输出不符合题目要求,要特别设置一个数列进行承接。特别再设置一个的原因是列表中录入列表,并不能当作二维数组来看待。因此不能使用value_ans[][]来输出

你可能感兴趣的:(python,算法,开发语言)