zoukankan      html  css  js  c++  java
  • 洛谷 P2089 烤鸡

                                                      P2089 烤鸡

    题目背景

    猪猪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 

    说明

    枚举

     1 /*
     2     每种配料放1-3克
     3     所以小于10克和大于30克直接输出0就好了
     4     我还一直担心dfs会爆。。
     5 */
     6 #include <cctype>
     7 #include <cstdio>
     8 
     9 const int MAXN=10010;
    10 
    11 int n,tot;
    12 
    13 int a[20],ans[MAXN][20];
    14 
    15 inline void read(int&x) {
    16     int f=1;register char c=getchar();
    17     for(x=0;!isdigit(c);c=='-'&&(f=-1),c=getchar());
    18     for(;isdigit(c);x=x*10+c-48,c=getchar());
    19     x=x*f;
    20 }
    21 
    22 void dfs(int u,int rest) {
    23     if(u==11) {
    24         if(!rest) {
    25             ++tot;
    26             for(int i=1;i<=10;++i)
    27                  ans[tot][i]=a[i];
    28         }
    29         return;
    30     }
    31     for(int i=1;i<=3;++i) {
    32         a[u]=i;
    33         dfs(u+1,rest-i);
    34     }
    35     return;
    36 }
    37 
    38 int hh() {
    39     read(n);
    40     if(n<10||n>30) {
    41         printf("0
    ");
    42         return 0;
    43     }
    44     dfs(1,n);
    45     printf("%d
    ",tot);
    46     for(int i=1;i<=tot;++i) {
    47         for(int j=1;j<=10;++j)
    48             printf("%d ",ans[i][j]);
    49         printf("
    ");
    50     }
    51     return 0;
    52 } 
    53 
    54 int sb=hh();
    55 int main(int argc,char**argv) {;}
    代码


    作者:乌鸦坐飞机
    出处:http://www.cnblogs.com/whistle13326/
    新的风暴已经出现 怎么能够停止不前 穿越时空 竭尽全力 我会来到你身边 微笑面对危险 梦想成真不会遥远 鼓起勇气 坚定向前 奇迹一定会出现

     
  • 相关阅读:
    ARP:地址解析协议,RARP
    pip 安装psutil 报错 error: command 'gcc' failed with exit status 1
    linux shell 控制脚本
    linux shell 呈现数据
    linux shell 处理用户输入
    shell结构化命令
    centos7 安装配置 squid作为正向代理
    linux基本脚本
    linux文件权限
    模拟垃圾分布
  • 原文地址:https://www.cnblogs.com/whistle13326/p/7467284.html
Copyright © 2011-2022 走看看