题解:

错误的:

#include<stdio.h>
int n,ret=0,a[10000][10];
int p(int c,int s){
 int i;
 for(i=1;i<=3;i++){
   s+=i;
   if(c==9){
     if(s==n){
       a[ret][c]=i;
       ret++;
       return 1;
     }else{
      s-=i;
       continue;
     }
   }else{
     if(p(c+1,s)){
      a[ret-1][c]=i;
      return 1;
    }
  }
 
 }
}
int main()
{
 int i,j;
 scanf("%d",&n);
 if(n>30&&n<10){
  printf("0");
 }else{
  int b=p(0,0);
 
 }
 printf("%d\n",ret);
 for(i=0;i<ret;i++){
  for(j=0;j<10;j++){
   printf("%d ",a[i][j]);
  }
  printf("\n");
 }
 return 0;
}
 
可惜的是这个递归出来只有一个解,之后将返回值去掉,进入函数时存放数据,满足一次就拷贝数据至下一行数组中,继续循环。这样弄有点繁琐。
简单点的话,其实可以用一个一维数组来测试组合,符合时就将这组数拷贝到二维数组中。
int c[10000][10],b[10];
void p(int total,int a){
 int i,j;
    if (a==10){
        if (total==n) {
            for ( j=0;j<10;j++) c[ret][j]=b[j];//符合要求存起来~~
            ret++;
        }
    }
    else if (total>=n) ;//小小优化一下
    else
      for ( i=1;i<=3;i++){
          b[a]=i;
          p(total+i,a+1);//其实这和十连for没什么区别。。。
      }
}
 
网上说正解是搜索,歪解是枚举,枚举两遍即可完成,说实话咱也想过要枚举,一是觉得有点简单,二是觉得可能会算法复杂度太高,结果是不高。。。

(综合)P2089 烤鸡的更多相关文章

  1. 洛谷P2089烤鸡

    题目链接:https://www.luogu.org/problemnew/show/P2089 题目详情: 题目背景 猪猪hanke得到了一只鸡 题目描述 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲, ...

  2. 洛谷 P2089 烤鸡【DFS递归/10重枚举】

    [链接]:https://www.luogu.org/problemnew/show/P2089 题目描述 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢? ...

  3. P2089 烤鸡

    题目背景 猪猪hanke得到了一只鸡 题目描述 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10种配料(芥末.孜然等),每种配料可以放1—3克, ...

  4. 洛谷P2089 烤鸡

    标签:暴力,枚举 题目背景 猪猪 Hanke 得到了一只鸡. 题目描述 猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 种配料(芥末. ...

  5. (水题)洛谷 - P2089 - 烤鸡

    https://www.luogu.org/problemnew/show/P2089 非常暴力的dfs,不知道不剪枝会怎么样,但是其实最多也就 $3^{10}$ ,大不到哪里去.还有一个细节就是大于 ...

  6. P2089 烤鸡(搜索简单题)

    题意:就是x分别是1到3的未知数,求x1+x2+x3.....+x10=n的方案数和输出每种方案.每种方案还必须按字典序输出 思路:就是简单的构建搜索树+约束条件啊,其实数据范围一点都不大,所以,我第 ...

  7. 洛谷 P2089 烤鸡

    看了前面大佬的代码,发现这道题的解题思路都大同小异. 首先肯定要定义一个变量累加方案数量,因为方案数量要最先输出,所以所有方案要先储存下来.个人不喜欢太多数组,就只定义一个字符串. 然后我们发现只有1 ...

  8. Java实现 洛谷 P2089 烤鸡

    import java.util.Arrays; import java.util.Iterator; import java.util.LinkedList; import java.util.Sc ...

  9. 洛谷-烤鸡-BOSS战-入门综合练习1

    题目背景 Background 猪猪hanke得到了一只鸡  题目描述 Description 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10 ...

随机推荐

  1. 使用conda创建虚拟环境

    conda创建python虚拟环境 前言 conda常用的命令: conda list 查看安装了哪些包. conda env list 或 conda info -e 查看当前存在哪些虚拟环境 co ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-star-empty

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. 洛谷 P2549 计算器写作文

    题目传送门 解题思路: 背包,f[i]表示计算器位数为i时,可获得的最大分值. 本题与01背包不同的地方在于,物品的摆放顺序对答案是有影响的,例如两个字符串a,b,那么就会出现a+b和b+a两种情况( ...

  4. 二十四、JavaScript之取字符串长度

    一.代码如下 二.效果如下 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" conten ...

  5. Storm 流式计算框架

    1. 简介 是一个分布式, 高容错的 实时计算框架 Storm进程常驻内存, 永久运行 Storm数据不经过磁盘, 在内存中流转, 通过网络直接发送给下游 流式处理(streaming) 与 批处理( ...

  6. Python安装bs4

    - 需要将pip源设置为国内源,阿里源.豆瓣源.网易源等 - windows (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %appdata% (3)在这里面新建一个文件夹 pip ...

  7. 吴裕雄--天生自然C++语言学习笔记:C++ 模板

    模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码. 模板是创建泛型类或函数的蓝图或公式.库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念. 每个容器都有一个单 ...

  8. 第十四篇Django-model进阶(中介模型,查询优化,extra,整体插入)

    Django-model进阶(中介模型,查询优化,extra,整体插入) 阅读目录(Content) 中介模型 查询优化 extra 整体插入 中介模型 处理类似搭配 pizza 和 topping ...

  9. Tomcat9卸载与安装

    Tomcat9卸载与安装 首先确定环境变量配置正确,按实际的安装路径来设置. 在tomcat9的bin目录下打开命令行窗口 按住shift键不放,点击右键 输入以下命令 在打开的命令行窗口中输入以下命 ...

  10. 2.11 DataBinding 简单使用

    DataBindIng 在我理解看来类似于其他语言当中的全局变量,只修改一处就可全部修改 添加位置和代码如下: 打开DataBinding 开关: dataBinding { enabled true ...