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

蓝桥杯算法心得——李白打酒(加强版)

大家好,我是晴天学长,记忆化搜索,找到技巧非常重要,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪

在这里插入图片描述

2) .算法思路

1.memo三维表示记录的结果


3).算法步骤

1.首先导入需要的类和包,包括 java.util.Scanner。
2.创建一个公共类 Main。
3.声明一个静态变量 mod 并初始化为 1000000007,用于取模操作。
4.声明一个三维数组 memo,用于存储中间计算结果。
5.在 main 方法中,创建一个 Scanner 对象来读取输入。
6.通过 scanner.nextInt() 方法分别读取输入的 N 和 M 的值。
7.初始化变量 sum 为 2。
8.创建大小为 101x101x101 的 memo 数组,并将其所有元素初始化为 -1。
9.调用 dfs 方法,并将 sum、N 和 M 作为参数传递给它。
10.在控制台打印输出 dfs 方法的返回值。
11.定义 dfs 方法,接收 sum、N 和 M 作为参数。
12.首先进行递归终止条件的判断,如果 sum 等于 1,N 等于 0,M 等于 1,返回 1。
13.进行剪枝操作,如果 sum 小于 0,N 小于 0 或 M 小于 0,返回 0。
14.如果 sum 大于 M,返回 0。
15.检查 memo[sum][N][M] 是否已经计算过,如果有值,则直接返回该值。
16.如果没有计算过,进行递归计算并将结果保存到 memo 数组中。
17.递归调用 dfs 方法,传入 sum*2、N-1 和 M 作为新的参数,并将结果与递归调用 dfs 方法,传入 18.sum-N 和 M-1 作为新的参数的结果相加,并对 mod 取模。
19.将结果保存到 memo 数组中,并返回该值。


4). 代码实例

import java.util.Scanner;public class Main {static int mod = 1000000007;static int[][][] memo;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int M = scanner.nextInt();int sum = 2;memo = new int[101][101][101];for (int i = 0; i < 101; i++) {for (int j = 0; j < 101; j++) {for (int k = 0; k < 101; k++) {memo[i][j][k] = -1; // 初始化dp数组为-1}}}System.out.println(dfs(sum, N, M));}//口枝叶回//酒喝光了遇到店是合法的,最后一次是定了的private static int dfs(int sum ,int N,int M) {if (sum==1&&N==0&&M==1) {return 1;}//剪枝if (sum<0||N<0||M<0) {return 0;}if (sum > M) return 0;if (memo[sum][N][M]!=-1) {return memo[sum][N][M];}memo[sum][N][M]=(dfs(sum*2, N-1, M)+dfs(sum-1, N,M-1))%mod;return memo[sum][N][M];}
}

5). 总结

  • dp和记忆化搜索的熟练掌握。

相关文章:

蓝桥杯算法心得——李白打酒(加强版)

大家好&#xff0c;我是晴天学长&#xff0c;记忆化搜索&#xff0c;找到技巧非常重要&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 2) .算法思路 1.memo三维表示记录的结果 3&#xff09;.算法步骤 1…...

java练习2

题目要求 创建一个Color枚举类有RED,BLUE,BLACK,YELLOW,GREEN这五个枚举值/对象Color有三个属性redValue&#xff0c;greenValue&#xff0c;blueValue创建构造方法&#xff0c;参数包括这三个属性每个枚举值都要给这三个属性赋值&#xff0c;三个属性对应的值分别是red&#…...

【安装笔记-20240523-Windows-安装测试 ShareX】

安装笔记-系列文章目录 安装笔记-20240523-Windows-安装测试 ShareX 文章目录 安装笔记-系列文章目录安装笔记-20240523-Windows-安装测试 ShareX 前言一、软件介绍名称&#xff1a;ShareX主页官方介绍 二、安装步骤测试版本&#xff1a;16.1.0下载链接功能界面 三、应用场景屏…...

2024年150道高频Java面试题(七十一)

141. spring cloud 的核心组件有哪些&#xff1f; Spring Cloud 是一个基于Spring Boot实现的微服务架构开发工具集&#xff0c;它为微服务架构中的诸多问题提供了解决方案。Spring Cloud的核心组件主要包括以下这些&#xff1a; Spring Cloud Config&#xff1a;提供服务器和…...

【深度学习】2.单层感知机

目标&#xff1a; 实现一个简单的二分类模型的训练过程&#xff0c;通过模拟数据集进行训练和优化&#xff0c;训练目标是使模型能够根据输入特征正确分类数据。 演示: 1.通过PyTorch生成了一个模拟的二分类数据集&#xff0c;包括特征矩阵data_x和对应的标签数据data_y。标签…...

JS经常碰见的报错问题

语法错误&#xff1a;由于 JavaScript 是一种动态语言&#xff0c;因此编写代码期间可能会出现语法错误。这可能包括拼写错误、漏掉分号或括号等问题。 作用域问题&#xff1a;JavaScript 中存在全局作用域和局部作用域的概念&#xff0c;有时候可能会出现变量作用域混乱导致的…...

纯前端实现截图功能

纯前端实现截图功能 一、插件二、主要代码 一、插件 一、安装html2canvas、vue-cropper npm i html2canvas --save //用于将指定区域转为图片 npm i vue-cropper -S //将图片进行裁剪二、在main.js注册vue-cropper组件 import VueCropper from vue-cropper Vue.use(VueCropper…...

【网络协议】应用层协议--HTTP

文章目录 一、HTTP是什么&#xff1f;二、HTTP协议工作过程三、HTTP协议1. fiddler2. Fiddler抓包的原理3. 代理服务器是什么?4. HTTP协议格式1.1 请求1.2 响应 四、认识HTTP的请求1.认识HTTP请求的方法2.认识请求头&#xff08;header&#xff09;3.认识URL3.1 URL是什么&…...

【图书推荐】《Vue.js 3.x+Element Plus从入门到精通(视频教学版)》

配套示例源码与PPT课件下载 百度网盘链接: https://pan.baidu.com/s/1nBQLd9UugetofFKE57BE5g?pwdqm9f 自学能力强的&#xff0c;估计不要书就能看代码学会吧。 内容简介 本书通过对Vue.js&#xff08;简称Vue&#xff09;的示例和综合案例的介绍与演练&#xff0c;使读者…...

抖店如何打造出爆品?学好这几招,轻松打爆新品流量

大家好&#xff0c;我是电商花花。 近年来&#xff0c;抖店商家越来越多&#xff0c;而选品&#xff0c;爆品就是我们商家竞争的核心了&#xff0c;谁能选出好的新品&#xff0c;打造出爆品&#xff0c;谁的会赚的多&#xff0c;销量多。 做抖音小店想出单&#xff0c;想赚钱…...

软件需求规范说明模板

每个软件开发组织都会为自己的项目选用一个或多个标准的软件需求规范说明模板。有许多软件需求规范说明模板可以使用(例如ISO/IEC/IEEE2011;Robertson and Robertson2013)。如果你的组织要处理各种类型或规模的项目&#xff0c;例如新的大型系统开发或是对现有系统进行微调&…...

vs2013使用qt Linguist以及tr不生效问题

一、qt Linguist&#xff08;语言家&#xff09;步骤流程 1、创建翻译文件,在qt选项中 2.选择对应所需的语言&#xff0c;得到.ts后缀的翻译文件 3.创建.pro文件&#xff0c;并将.ts配置在.pro文件中 3.使用qt Linguist 打开创建好的以.ts为后缀的翻译文件&#xff0c;按图所示…...

Leetcode 3163. String Compression III

Leetcode 3163. String Compression III 1. 解题思路2. 代码实现 题目链接&#xff1a;3163. String Compression III 1. 解题思路 这一题的话就是一个简单的贪婪算法&#xff0c;把相同的字符进行归并&#xff0c;然后按照题目中的表示方法进行表示一下即可。 2. 代码实现…...

Java匿名内部类的使用

演示匿名内部类的使用&#xff0c;很重要 package com.shedu.Inner;/*** 演示匿名内部类的使用*/ public class AnonymousInnerClass {//外部其他类public static void main(String[] args) {Outer04 outer04 new Outer04();outer04.method();} }class Outer04{//外部类priva…...

把自己的垃圾代码发布到官方中央仓库

参考博客&#xff1a;将组件发布到maven中央仓库-CSDN博客 感谢这位博主。但是他的步骤有漏缺&#xff0c;相对进行补充 访问管理页面 网址&#xff1a;Maven Central 新注册账号&#xff0c;或者使用github快捷登录&#xff0c;建议使用github快捷登录 添加命名空间 注意&…...

单机一天轻松300+ 最新微信小程序拼多多+京东全自动掘金项目、

现代互联网经济的发展带来了新型的盈利方式&#xff0c;这种方法通过微信小程序的拼多多和京东进行商品自动巡视&#xff0c;以此给商家带来增加的流量&#xff0c;同时为使用者带来利润。实践这一手段无需复杂操作&#xff0c;用户仅需启动相应程序&#xff0c;商品信息便会被…...

线性回归模型之套索回归

概述 本案例是基于之前的岭回归的案例的。之前案例的完整代码如下&#xff1a; import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import Ridge, LinearRegression from sklearn.datasets import make_regression from sklearn.model_selectio…...

解决文件夹打开出错问题:原因、数据恢复与预防措施

在我们日常使用电脑或移动设备时&#xff0c;有时会遇到一个非常棘手的问题——文件夹打开出错。这种错误可能会让您无法访问重要的文件和数据&#xff0c;给工作和生活带来极大的不便。本文将带您深入了解文件夹打开出错的原因&#xff0c;并提供有效的数据恢复方案&#xff0…...

Spring:面向切面(AOP)

1. 代理模式 二十三种设计模式中的一种&#xff0c;属于结构型模式。它的作用就是通过提供一个代理类&#xff0c;让我们在调用目标方法的时候&#xff0c;不再是直接对目标方法进行调用&#xff0c;而是通过代理类**间接**调用。让不属于目标方法核心逻辑的代码从目标方法中剥…...

本地镜像文件怎么导入docker desktop

docker tag d1134b7b2d5a new_repo:new_tag...

ARM PMU外部接口与性能监控寄存器详解

1. ARM性能监控寄存器外部接口深度解析性能监控单元(PMU)是现代处理器架构中用于硬件性能分析的核心模块&#xff0c;它通过一组可编程计数器实时捕获处理器微架构层面的各类事件。在ARMv8/v9架构中&#xff0c;PMU不仅可以通过系统寄存器访问&#xff0c;还提供了标准化的外部…...

为什么软件开发偏爱 Linux?深度剖析 Linux 相较于 Windows 的核心优势

引言 在软件开发的世界里&#xff0c;一个有趣的现象是&#xff1a;无论是大型互联网公司的服务器集群&#xff0c;还是资深程序员的个人开发机&#xff0c;Linux 操作系统的身影无处不在。与之形成鲜明对比的是&#xff0c;尽管 Windows 在个人消费市场占据绝对主导地位&…...

基于ATtiny84的智能冰箱监控器:低功耗温度与门状态监测方案

1. 项目概述&#xff1a;一个装在树莓派盒子里的智能冰箱管家如果你家里有台老冰箱&#xff0c;或者对食物储存温度特别在意&#xff0c;总担心冰箱门没关严或者突然断电导致内部升温&#xff0c;那么这个自己动手做的“冰箱看门狗”项目就太适合你了。它本质上是一个高度定制化…...

Office RibbonX Editor:简单三步打造你的专属Office界面

Office RibbonX Editor&#xff1a;简单三步打造你的专属Office界面 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbonx-edit…...

Codex使用API Key授权无法使用插件?

小伙伴们&#xff0c;大家好&#xff0c;我是小溪&#xff0c;见字如面。对于没有ChatGPT账号的小伙伴来说&#xff0c;虽然可以通过API Key授权的方式使用Codex桌面端&#xff0c;但是会有一些限制。比如无法使用插件功能&#xff0c;无法使用Codex移动端进行远程控制等。为了…...

AB包相关知识

Lua与AB包/Addressables以及YooAsset 摘自千问&#xff1a; Lua 是菜谱&#xff08;逻辑&#xff09;&#xff1a;决定了菜怎么做&#xff0c;味道如何。因为你需要随时换菜谱&#xff08;热更新&#xff09;&#xff0c;所以菜谱不能死板地印在墙上&#xff08;编译进主包&a…...

让B站缓存视频重获自由:一个简单实用的格式转换工具

让B站缓存视频重获自由&#xff1a;一个简单实用的格式转换工具 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 还记得那个周末的下午吗&#xf…...

洛雪音乐桌面版:跨平台音乐聚合播放器的终极使用指南

洛雪音乐桌面版&#xff1a;跨平台音乐聚合播放器的终极使用指南 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 洛雪音乐桌面版是一款基于Electron和Vue 3技术栈开发的开源跨平台…...

安全多方计算中稀疏矩阵乘法优化:原理、实现与隐私保护应用

1. 项目概述&#xff1a;当稀疏矩阵遇上安全多方计算在机器学习、推荐系统这些我们每天都会接触到的技术背后&#xff0c;数据往往以一种“稀疏”的形式存在。想象一下一个拥有百万用户和十万本书籍的在线书店&#xff0c;每个用户可能只读过其中几十本&#xff0c;那么构建一个…...

KMS智能激活工具:如何一键永久激活Windows和Office的完整指南

KMS智能激活工具&#xff1a;如何一键永久激活Windows和Office的完整指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office激活问题而烦恼吗&#xff1f;每次系统重装后都要…...