当前位置: 首页 > article >正文

算法每日一题:P2089 烤鸡 -DFS练习

在这里插入图片描述

😚一个不甘平凡的普通人,日更算法学习和打卡,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘
🤗专栏:每日算法学习
💬个人主页:个人主页

算法分类:dfs练习
语言:java
题目来源:洛谷 P2089 烤鸡

文章目录

  • 烤鸡
    • 题目背景
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
  • 思路
  • 完整代码:
  • 结果

烤鸡

题目背景

猪猪 Hanke 得到了一只鸡。

题目描述

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

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

输入格式

一个正整数 n n n,表示美味程度。

输出格式

第一行,方案总数。

第二行至结束, 10 10 10 个数,表示每种配料所放的质量,按字典序排列。

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

样例 #1

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

提示

对于 100 % 100\% 100% 的数据, n ≤ 5000 n \leq 5000 n5000

思路

每种佐料有三种情况,所以总的情况不会超过3^10,我们枚举每一种情况,定义一个数组来每种方案内佐料的质量,定义一个sum来统计总重,作为回溯的条件,最后输出即可。

完整代码:

import java.util.Scanner;

public class Main {
	//方案数
	static int res;
	//存储
	static int count;
	static int arr[];
	static int hello[][] = new int [59050][11];
	static int N;
	public static void main(String[] args) {
		Scanner  s = new Scanner(System.in);
		N = s.nextInt();
		arr = new int [20];
		dfs(1,0);
		System.out.println(res);
		for(int i =1;i<=res;i++) {
			for(int j =1;j<=10;j++) {
				System.out.print(hello[i][j]+" ");
			}
			System.out.println();
		}
		
	}
	public static void dfs(int index,int sum) {
		if(sum>N) return;
		if(index>10) {
			if(sum ==N) {
				res++;
				for(int i=1;i<=10;i++) {
					hello[res][i] = arr[i];
				}
			}
			return ;
		}
		for(int i =1;i<=3;i++) {
			arr[index] = i;
			dfs(index+1, sum+i);
			arr[index] =0;
		}
	}
}

结果

在这里插入图片描述

感谢您的阅读,希望对您有所帮助。关注我,完成每日算法自律打卡,什么时候开始都不晚!!


http://www.kler.cn/a/9550.html

相关文章:

  • 【小程序】封装网络请求request模块
  • 翼鸥教育:从OceanBase V3.1.4 到 V4.2.1,8套核心集群升级实践
  • ubuntu cmake CPack将第三方库进行打包
  • Chromium 中MemoryMappedFile使用例子c++
  • mysql 实现分库分表之 --- 基于 MyCAT 的分片策略详解
  • 重新认识HTTPS
  • 学生台灯哪个品牌的专业?盘点小学生台灯品牌排行榜
  • 如何用 YonBuilder 构建线索管理应用
  • 【hello Linux】Linux软件管理器yum
  • shell 脚本 echo 往串口终端输出调试信息
  • Elasticsearch:保留字段名称
  • 面试官:你知道SPI吗?Java、Spring、Dubbo三者SPI机制的原理和区别了解吗?
  • JetBrains GoLand 2023安装激活教程
  • python传参数的方法
  • springbootApplication注解详解
  • 【Kafka】日志收集分析平台搭建--问题总结(一)
  • 出道即封神的ChatGPT,现在怎么样了?ChatGPT想干掉测试人员,做梦去吧
  • chatGPT文章生成插件-用chatGPT写文章接入网站
  • Unreal Engine的自定义扩展思路
  • 虹科案例 | 丝芙兰xDomo:全球美妆巨头商业智能新玩法
  • Java File类
  • CompletableFuture详解
  • 2022国赛23:linux服务器如何添加开放端口
  • 从零开始,手把手教你实现基于 Websocket 的微服务
  • 搜索词分析工具-网站关键词挖掘
  • 从JVM 源码的角度深度剖析CAS是如何实现原子性的