【洛谷 2089】烤鸡

题目背景

猪猪hanke得到了一只鸡

题目描述

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

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

输入输出格式

输入格式:

 

一行,n<=5000

 

输出格式:

 

第一行,方案总数

第二行至结束,10个数,表示每种配料所放的质量

按字典序排列。

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

 

输入输出样例

输入样例#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 

说明

枚举

 

题解:由于n比较小,so可怕的暴力循环如下列了

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int n,ans;
int main(){
    //freopen("2089.in","r",stdin);
    //freopen("2089.out","w",stdout);
    scanf("%d",&n);
    for(int a1=1;a1<=3;a1++)
        for(int a2=1;a2<=3;a2++)
            for(int a3=1;a3<=3;a3++)
                for(int a4=1;a4<=3;a4++)
                    for(int a5=1;a5<=3;a5++)
                        for(int a6=1;a6<=3;a6++)
                            for(int a7=1;a7<=3;a7++)
                                for(int a8=1;a8<=3;a8++)
                                    for(int a9=1;a9<=3;a9++)
                                        for(int a10=1;a10<=3;a10++)
                                            if(a1+a2+a3+a4+a5+a6+a7+a8+a9+a10==n)
                                                ans++;
    cout<<ans<<endl;
    for(int a1=1;a1<=3;a1++){
        for(int a2=1;a2<=3;a2++){
            for(int a3=1;a3<=3;a3++){
                for(int a4=1;a4<=3;a4++){
                    for(int a5=1;a5<=3;a5++){
                        for(int a6=1;a6<=3;a6++){
                            for(int a7=1;a7<=3;a7++){
                                for(int a8=1;a8<=3;a8++){
                                    for(int a9=1;a9<=3;a9++){
                                        for(int a10=1;a10<=3;a10++){
                                            if(a1+a2+a3+a4+a5+a6+a7+a8+a9+a10==n)
                                                printf("%d %d %d %d %d %d %d %d %d %d\n",
                                                a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}

 

posted @ 2019-07-22 10:35  #Cookies#  阅读(246)  评论(0编辑  收藏  举报