acw165. 小猫爬山-DFS剪枝与优化

题目

思路

  1. 暴搜顺序:从前往后依次枚举每只小猫,枚举当前这只小猫应该放在哪一辆车上,递归完n层之后,就可以知道所有方案中的最少车辆总数
  2. 剪枝的情况:
    1. 优化搜索顺序:大部分情况下,应该优先搜索分支较少的节点
    2. 排除等效冗余
    3. 可行性剪枝
    4. 最优性剪枝
    5. 记忆化搜索(DP)
  3. 本题的剪枝:
    1. ​​​​​​​优化搜索顺序:优先放重猫
    2. 可行性剪枝:如果放入当前的猫,车的重量超出,则舍弃该方案
    3. 最优性剪枝:如果当前车的数量已经大于等于ans(符合条件的最少车的数量)

代码

#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=20;int n,m;
int w[N];
int sum[N]; //当前猫的重量
int ans=N;void dfs(int u,int k){ // u:当前猫的数量,k:当前车的数量//最优性剪枝if(k>=ans)return ; //当前车的数量大于等于ansif(u==n){ans=k;return;}//枚举当前这只猫可以放到哪辆车上去for(int i=0;i<k;i++){if(sum[i]+w[u]<=m){ //可行性剪枝sum[i]+=w[u];dfs(u+1,k);sum[i]-=w[u];//恢复现场}}//新开一辆车sum[k]=w[u];dfs(u+1,k+1);sum[k]=0; //恢复现场
}int main(){cin>>n>>m;for(int i=0;i<n;i++)cin>>w[i];//优化搜索顺序sort(w,w+n);reverse(w,w+n);dfs(0,0);cout<<ans<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交易复盘-20240513

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 双成药业 (1)|[9:30]|[3566万]|0.34 中通客车 (1)|[9:43]|[7678万]|0.15 嘉华股份 (2)|[9:30]|[36…

李飞飞团队关于2024年人工智能发展报告总结 (Artificial Intelligence Index Report)

目录 1 10大核心信息2 AI研究和发展2.1 核心要点2.2 核心对比信息2.3 模型是否会用尽数据2.4 基础模型发展2.5 训练模型成本 3 技术性能3.1 核心要点3.2 重要模型发布情况3.3 AI表现情况3.4 多学科、高难度评估集 (MMMU & GPQA & ARC)3.5 Agents3.6 RLHF & RLAIF3.…

山西教育杂志山西教育杂志社山西教育编辑部2024年第4期目录

课题研究 小学语文随堂小练笔策略研究 陈立固; 3-4 儿童戏剧工作坊载体下小学语文戏剧课堂的建构 郭黎明; 5-6《山西教育》投稿&#xff1a;cn7kantougao163.com 文化生态视域下小学英语教学的传统文化融入 周慧娟; 7-8 基于“主题语境”的初中英语课堂教学研究…

公式识别软件免费的有哪些?简单好用的有三款

公式识别软件免费的有哪些&#xff1f;在数字化时代&#xff0c;公式识别软件已经成为科研、教育等领域不可或缺的工具。这些软件能够准确地将图像中的公式转化为可编辑的文本格式&#xff0c;极大地提高了工作效率。为了帮助大家轻松应对公式识别的挑战&#xff0c;今天本文就…

想要成为项目经理?先掌握这24条职场生存法则!

以下是项目经理的24条职场经验&#xff0c;这些经验涵盖了项目管理的各个方面&#xff0c;希望能对项目经理或有意成为项目经理的人有所启发。 1、明确目标&#xff1a;项目成功的关键在于明确的目标。在项目启动之初&#xff0c;确保所有利益相关者对项目目标有清晰、共同的…

milvus插入数据时,明明不超长,但总是报长度错误?

在处理插入milvus数据时&#xff0c;设置了字段长度为512. 明明考虑了预留&#xff0c;插入的数据中没有这么长的&#xff0c;但还是会有报错 类似&#xff1a;MilvusException: (code0, messagethe length (564) of 78th string exceeds max length (512) 查找max(len(x) for …

绘制一个单级放大电路原理图过程,保姆级教程

新手在学习pads的使用最好最快的方法就是实际上手去画原理图&#xff0c;画PCB图&#xff0c;在这个过程中&#xff0c;就能够更快速得掌握PADS软件的使用。 本篇就是对于实际画原理图过程的一个记录&#xff0c;手把手教学&#xff0c;如果有纰漏或者有更好的一些技巧&#xf…

c++ 线程锁的种类

在C中&#xff0c;为了同步线程并防止数据竞争&#xff0c;可以使用各种线程锁&#xff08;也称为互斥体或同步原语&#xff09;。这些锁提供了对共享资源的独占访问&#xff0c;确保在任何时候只有一个线程可以访问被保护的资源。以下是一些C线程锁的种类&#xff1a; std::m…

AIGC文生图 flask base64传递多张图片api

flask后端实现: base64.b64encode from flask import Flask, Response, request,send_file from PIL import Image import torch import io from diffusers import PixArtAlphaPipeline import zipfile import base64 import requests import

SpringBoot学习记录(3)

SpringBoot监听机制 SpringBoot的监听机制&#xff0c;其实是对java提供的事件监听机制的封装 java监听机制 java中的事件监听机制定义了以下几个角色 事件&#xff1a;Event&#xff0c;继承java.util.EventObject类的对象 事件源&#xff1a;Source&#xff0c;任意对象Ob…

【联合索引】最左匹配原则是什么?

什么是联合索引 联合索引&#xff08;Composite Index&#xff09;是一种索引类型&#xff0c;它由多个列组成。 MySQL的联合索引&#xff08;也称为复合索引&#xff09;是建立在多个字段上的索引。这种索引类型允许数据库在查询时同时考虑多个列的值&#xff0c;从而提高查询…

Linux系统监控命令详解

Linux系统监控命令详解 一、引言 在Linux系统中&#xff0c;系统监控是保障系统稳定运行、提高资源利用率、预防故障发生的重要手段。本文将详细解析Linux系统监控命令&#xff0c;探讨如何更有效地进行系统监控。 二、Linux系统监控概述 Linux系统监控主要包括对CPU、内存…

怎么下载抖音直播视频 怎么解析直播间链接的视频录制保存

尊敬的读者们&#xff0c;你们好&#xff01;今天我们将探讨一个非常实用的技巧——如何下载直播视频。随着网络技术的发展&#xff0c;直播视频已经成为我们日常生活中不可或缺的一部分。无论是观看比赛、欣赏音乐会还是探索新的美食&#xff0c;直播视频都为我们提供了更直观…

UE5缺少SDK,而无法在windows平台打包的解决方法

问题1&#xff1a;UE5缺少SDK&#xff0c;而无法在windows平台打包的解决方法&#xff08;项目问题&#xff0c;做一下记录&#xff0c;没有参考性&#xff09; (1)打不开&#xff1a;D:\imageworks-OpenColorIO-Configs-v1.0_r2-8-g0bb079c.tar 解决方案&#xff1a;从23拷贝D…

嵌入式数据库概念和基本命令的使用

文章目录 前言一、sqlite数据库概念二、sqlite数据库命令分类和使用1.命令分类1. 系统命令&#xff1a;2. SQLite 命令&#xff1a; 2.系统命令的使用3.sqlite命令的使用 三、sqlite C语言函数的使用和编程方法总结 前言 本篇文章将为大家讲解嵌入式数据库的使用&#xff0c;嵌…

非常简单的长期兼职,无脑复制粘贴,每天稳定200-300+

带货这个概念已经不再陌生&#xff0c;许多人对此产生了浓厚的兴趣。今天&#xff0c;我将向大家介绍一个百家号带货项目&#xff0c;这是我一位朋友正在操作的项目。最近与他交流后&#xff0c;我觉得这个项目具有相当的操作性。他并非只运营了一个账号&#xff0c;而是同时管…

5月13日,每日信息差

第一、北京近期发生一起诈骗案件&#xff0c;犯罪分子伪装成宽带维修人员&#xff0c;上门为老人安装 VOIP 设备&#xff0c;以此从事电信诈骗活动。设备安装后&#xff0c;会使家庭网络被用于诈骗&#xff0c;且因设备隐蔽安装在居民家中难以察觉。目前&#xff0c;嫌疑人已被…

Python 错误 TypeError 解析,实际错误实例详解 (二)

文章目录 前言Python 错误 TypeError: Decoding Unicode Is Not SupportedPython 中 TypeError: decoding Unicode is not supported 错误修复 Python 中 TypeError: decoding Unicode is not supportedPython 错误 TypeError: ‘map‘ object Is Not SubscriptablePython 中出…

poi导出word 详细教程

文章目录 HWPFHWPF的基本概念基本操作引入的依赖读取Word文档创建Word文档修改Word文档 高级操作操作表格格式化文本 XWPFHWPF的基本概念基本操作读取Word文档创建Word文档修改Word文档 高级操作操作表格格式化文本 HWPF HWPF的基本概念 HWPF是Apache POI项目中的一个组件&am…

东芝移动硬盘数据恢复方法有哪些

谁能懂我此刻的心情啊&#xff01;移动硬盘用起来真的超级方便&#xff0c;如今我的工作几乎都离不开它&#xff0c;用来存放各种重要文件。可是&#xff0c;让人头疼的事情发生了&#xff0c;昨天我发现移动硬盘里的部分数据竟然莫名其妙地消失了&#xff01;这可咋整啊&#…