蓝桥杯上岸每日N题 第七期(小猫爬山)!!!

这篇具有很好参考价值的文章主要介绍了蓝桥杯上岸每日N题 第七期(小猫爬山)!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

蓝桥杯上岸每日N题 第七期(小猫爬山)!!!

同步收录 👇

蓝桥杯上岸必背!!!(第四期DFS)

大家好 我是寸铁💪

冲刺蓝桥杯省一模板大全来啦 🔥

蓝桥杯4月8号就要开始了 🙏

距离蓝桥杯省赛倒数第3天 ❗️ ❗️ ❗️

还没背熟模板的伙伴们背起来 💪 💪 💪

真题千千万万遍,蓝桥省一自然现! ✌️

日更3000里,蓝桥眷顾你 🌟

暴力出奇迹,打表过样例 👊

祝大家4月8号蓝桥杯上岸 ☀️

不清楚蓝桥杯考什么的点点下方👇

考点秘籍

想背纯享模版的伙伴们点点下方👇

蓝桥杯省一你一定不能错过的模板大全(第一期)

蓝桥杯省一你一定不能错过的模板大全(第二期)

蓝桥杯省一你一定不能错过的模板大全(第三期)

蓝桥杯省一你一定不能错过的模板大全(第四期)!!!

想背注释模版的伙伴们点点下方👇

蓝桥杯必背第一期

蓝桥杯必背第二期

往期精彩回顾

蓝桥杯上岸每日N题 第一期(一)!!!

蓝桥杯上岸每日N题第一期(二)!!!

蓝桥杯上岸每日N题第一期(三)!!!

蓝桥杯上岸每日N题第二期(一)!!!

蓝桥杯上岸每日N题第三期(一)!!!

蓝桥杯上岸每日N题 第四期(最少刷题数)!!!

蓝桥杯上岸每日N题 第五期(山)!!!

蓝桥杯上岸每日N题 第六期(求阶乘)!!!

操作系统期末题库 第九期(完结)

LeetCode Hot100 刷题(第三期)

idea创建SpringBoot项目报错解决方案

数据库SQL语句(期末冲刺)

想看JavaB组填空题的伙伴们点点下方 👇

填空题

竞赛干货

算法竞赛字符串常用操作大全

蓝桥杯上岸必刷!!!(模拟/枚举专题)

蓝桥杯上岸必背!!! (第三期 DP)

蓝桥杯上岸必背!!!(第四期DFS)

蓝桥杯上岸必背!!!(第五期BFS)

蓝桥杯上岸必背!!!(第六期树与图的遍历)

蓝桥杯上岸必背!!!(第七期 最短路算法)

蓝桥杯上岸必背!!!(第八期 简单数论)


喜欢的小伙伴可以关注我,关注寸铁,我们一起上岸4.8蓝桥杯!!!

小猫爬山

考点:DFS+可行性剪枝

分析

要尽可能减少花费-->递归的分支尽可能少-->优先考虑放重猫
优先考虑放重猫,需要从大到小排个序
一直往下搜索,答案是唯一的。
放得下猫就继续往该车往下加
放不下就再另外开一辆放猫
分两个分支去放
开一辆继续放其他猫的为一个分支
开另一辆单独只放一只猫的为另一个分支
接下来递归调用处理,对于每个分支递归后有又n个分支,一直递归下去,直至递归到n层。说明当前的车数为最优解。
我们可以建立如下递归搜索图:
蓝桥杯上岸每日N题 第七期(小猫爬山)!!!,蓝桥杯上岸,蓝桥杯,java,算法,数据结构,leetcode,真题题解

DFS小结:

递归DFS最简单直接的理解方式就是按照你的做题逻辑顺序来写
所以做题的逻辑顺序至关重要,确保不重不漏地确保方案。
逻辑正确跑出来答案正确即可,不要过分地去深究内在实现,会很纠结。
注意dfs下一层要恢复现场,这是必需的。
深究不外乎:递归下一层+置false回溯上一层用+去掉无用的分支剪枝

Accode

//从大到小排个序,优先放重猫。
//一直往下搜索,答案是唯一的。
//放得下猫就继续往下加
//放不下就再另外开一辆,继续放
//分两个分支去放
//开一辆继续放其他猫的有一个分支
//开另一辆只放一只猫的也有一个分支
import java.util.*;
public class Main{
    static int N=20;
    static int n,m;
    static int arr[]=new int [N];
    static int ans=N;
    static int car[]=new int [N];
    static int cat[]=new int[N];
    public static void main(String []args){
        Scanner in = new Scanner(System.in);
        n=in.nextInt();
        m=in.nextInt();
        for(int i=0;i<n;i++)cat[i]=in.nextInt();
        Arrays.sort(arr,0,n);
        //从小到大排个序
        Reverse(arr,0,n-1);
        //再从大到小排个序,优先放重猫
        dfs(0,0);
        System.out.println(ans);
    }
    //直接把他看成是第一遍模拟,剩下的递归处理即可。
    public static void dfs(int u,int k){
        if(k>=ans)return;
        if(u==n){
            //走到n时,即为找到答案ans=当前小车的数量k
            ans=k;
            return;
        }
        //考虑猫都放一辆车的情况
        for(int i=0;i<k;i++){
            if(cat[u]+car[i]<=m){
                car[i]+=cat[u];
                dfs(u+1,k);
                car[i]-=cat[u];
                //恢复现场,便于下一次加猫操作
            }
        }
        //考虑猫只放一辆车的情况
        car[k]=cat[u];
        dfs(u+1,k+1);
        //每次dfs会用到一辆车,所以需要加一。
        car[k]=0;
        //恢复现场
    }
    public static void Reverse(int q[],int l,int r)
    //反转函数 -->从大到小排个序
    {
        for(int i=l,j=r;i<j;i++,j--){
        int temp=arr[i];
        arr[i]=arr[j];
        arr[j]=temp;
        }
    }
    
}

✨ ✨ ✨
看到这里,不妨点个关注 💖文章来源地址https://www.toymoban.com/news/detail-634000.html

到了这里,关于蓝桥杯上岸每日N题 第七期(小猫爬山)!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯上岸每日N题 第八期 (全球变暖)!!!

    其中”上下左右”四个方向上 # 连在一起的一片陆地组成一座岛屿。 具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋 . ),它就会被淹没。 注:图中有3个岛屿,上下连续区域。 注:题中有一个岛屿全被淹没 观察一下:岛屿中陆地的数量和海洋的数量是

    2024年02月14日
    浏览(63)
  • 蓝桥杯上岸每日N题 第四期(最少刷题数)!!!

    前缀和: 二分 (1)情况1 (2)情况2 对于每一名学生,请你计算他至少还要再刷多少道题,才能使得全班刷题比他多的学生数不超过刷题比他少的学生数。 全班刷题比他多的学生数不超过刷题比他少的学生数。 换句话说:全班刷题比他少的学生数=(大于等于)全班刷题比他多的学

    2024年02月14日
    浏览(63)
  • BFS,DFS的应用场景及DFS的注意点,具体题:165.小猫爬山

     具体题目来看:         DFS适合于“找出一条可行的路径(是否可到达问题)”,“要遍历所有点一遍”,“组合排列类问题”之类         BFS适合于“找最短路(权值为1)”,“层序遍历概念” 对于题目过程的感觉(我每次都是靠这个) DFS对于数据像栈stack,后入栈的先出(从底

    2024年02月22日
    浏览(35)
  • 【洁洁送书第七期】现在学 Java 找工作还有优势吗

    文末赠书 在某乎上可以看到大家对此问题的热议:“2023年以就业为目的学习Java还有必要吗?” 。有人说市场饱和,最好是学点当前最流行的技术;也有人说 Java 应用广泛,以找工作为目的学习它还是很有必要的。 放眼国内市场,可能有些场景有 Java 之外的技术选择,但其

    2024年02月07日
    浏览(62)
  • LLaMA2可商用|GPT-4变笨|【2023-0723】【第七期】

    傅盛:ChatGPT时代如何创业 - BOTAI - 博客园 Google 已经被OpenAI 超越了吗?| AlphaGo 之父深度访谈 《人民日报》:大模型的竞争,是国家科技战略的竞争 WAIC 2023 | 张俊林:大语言模型带来的交互方式变革 Llama 2宇宙大爆炸!伯克利实测排第8,iPhone本地可跑,一大波应用免费玩,

    2024年02月15日
    浏览(36)
  • JavaScript 手写代码 第七期(重写数组方法三) 用于遍历的方法

    我们在日常开发过程中,往往都是取出来直接用,从来不思考代码的底层实现逻辑,但当我开始研究一些底层的东西的时候,才开始理解了JavaScript每个方法和函数的底层实现思路,我认为这可以很好的提高我们的代码水平和逻辑思维。 2.1.1 基本使用 forEach() 方法用于调用数组

    2024年02月12日
    浏览(52)
  • 数据库管理-第七十七期 再探分布式(20230523)

    上一次系统探讨分布式数据库还是在第三十六期,经过大半年的“进步”加上中间参加了不少国产数据库的研讨会或者交流,对分布式数据库的理解还是有了些许进步。 最近出现了所谓的“新词”:单机分布式,简言之就是一台服务器运行多个数据库实例,通过spanner框架等

    2024年02月08日
    浏览(46)
  • 面试 React 框架八股文十问十答第七期

    作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)React 废弃了哪些生命周期?为什么? 在React 16.3版本后,React废弃了一些生命周期方法,这是为了简化API、提高可维护性以及引入更

    2024年01月18日
    浏览(44)
  • 面试 JavaScript 框架八股文十问十答第七期

    作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)原型修改、重写 在 JavaScript 中,可以通过修改或重写对象的原型来改变对象的行为。原型修改指的是直接修改对象的原型,而原型

    2024年02月20日
    浏览(51)
  • 面试 Vue 框架八股文十问十答第七期

    作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)Vue template 到 render 的过程 在Vue中,template会被编译成一个 render 函数。整个过程包括以下步骤: 模板编译: Vue通过模板编译器将t

    2024年01月25日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包