zoukankan      html  css  js  c++  java
  • 【洛谷 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
    ",
                                                    a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    linkedLoop
    loopqueue
    expect 切换用户
    二叉树的实现
    栈的链表实现, 底层使用链表
    栈的数组实现
    RSA加密算法
    输入一个链表,反转链表后,输出链表的所有元素
    输入一个链表,输出该链表中倒数第k个结点
    ansible中include_tasks和import_tasks
  • 原文地址:https://www.cnblogs.com/wuhu-JJJ/p/11224421.html
Copyright © 2011-2022 走看看