zoukankan      html  css  js  c++  java
  • 烤鸡

    题目背景

    猪猪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 #include<cstdio>
     2 int n,ans;
     3 int f[300000][12],s[12];
     4 void find(int x,int y){
     5     if(x==10){
     6         if(y==n){
     7             for(int i=0;i<10;i++) f[ans][i]=s[i];
     8             ++ans;
     9         }
    10         return;
    11     }
    12     for(int i=1;i<=3;i++){
    13         s[x]=i;
    14         find(x+1,y+i);
    15     }
    16 }
    17 int main(){
    18     scanf("%d",&n);
    19     if(n>=10&&n<=30) find(0,0);
    20     printf("%d
    ",ans);
    21     for(int i=0;i<ans;i++){
    22         for(int j=0;j<10;j++){
    23             printf("%d",f[i][j]);
    24             if(j!=9) printf(" ");
    25         }
    26         printf("
    ");
    27     }
    28     return 0;
    29 }

    原作者的话提醒我们,不要把题目想的太难。

    题目来源:洛谷

  • 相关阅读:
    WIKI 配置参数
    SSH远程错误或者登录解决方法
    Mysql my.conf配置说明
    Mysql 常用命令
    Nginx 开机启动
    排序的总结
    strcpy函数实现(转载)
    函数指针传递
    地址的强制转换
    结构体内存对齐
  • 原文地址:https://www.cnblogs.com/J-william/p/6286192.html
Copyright © 2011-2022 走看看