蓝桥杯备赛第二篇(背包问题)

1. 01 背包(采用状态压缩)

    public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int M = scanner.nextInt();int N = scanner.nextInt();int[] value = new int[N + 1];int[] weight = new int[N + 1];int[] dp = new int[M + 1];for (int i = 1; i <= N; i++) {weight[i] = scanner.nextInt();value[i] = scanner.nextInt();}for (int i = 1; i <= N; i++) {for (int j = M; j >= weight[i]; j--) {dp[j] = Math.max(dp[j], dp[j - weight[i]] + value[i]);}}System.out.println(dp[M]);}

2. 多重背包

	public static void main(String[] args) {Scanner scanner = new Scanner(System.in);//容量为Mint M = scanner.nextInt();//种类int N = scanner.nextInt();//价值int[] value = new int[N + 1];//占用体积int[] weight = new int[N + 1];//个数int[] num = new int[N + 1];for (int i = 1; i <= N; i++) {value[i] = scanner.nextInt();weight[i] = scanner.nextInt();num[i] = scanner.nextInt();}int[] dp = new int[M + 1];for (int i = 1; i <= N; i++) {for (int j = M; j >= weight[i]; j--) {for (int k = 0; k <= num[i] && k * weight[i] <= j; k++) {dp[j] = Math.max(dp[j], dp[j - k * weight[i]] + k * value[i]);}}}System.out.println(dp[M]);}

3. 完全背包

	public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int M = scanner.nextInt();int[] value = new int[N + 1];int[] weight = new int[N + 1];for (int i = 1; i <= N; i++) {value[i] = scanner.nextInt();weight[i] = scanner.nextInt();}int[] dp = new int[M + 1];for (int i = 1; i <= N; i++) {for (int j = weight[i]; j <= M; j++) {dp[j] = Math.max(dp[j], dp[j - weight[i]] + value[i]);}}}

4.二维背包

	public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int M = scanner.nextInt();int V = scanner.nextInt();int[] weight = new int[N + 1];int[] volume = new int[N + 1];int[] value = new int[N + 1];for (int i = 1; i <= N; i++) {weight[i] = scanner.nextInt();volume[i] = scanner.nextInt();value[i] = scanner.nextInt();}int[][] dp = new int[M + 1][V + 1];for (int i = 1; i <= N; i++) {for (int j = M; j >= weight[i]; j--) {for (int k = V; k >= volume[i]; k--) {dp[j][k] = Math.max(dp[j][k], dp[j - weight[i]][k - volume[i]] + value[i]);}}}System.out.println(dp[M][V]);}

5.例题1:子集和_可重复

求从一些不重复数字中选取一些数字使得和为target的方案数,每个数字可以重复使用,求方案数。这是一个完全背包问题。 

public static void main(String[] args) {int[] nums = new int[]{0, 1, 2, 3, 4, 5, 6,7,8,9,10};int target = 12;int N = 10;int[] dp = new int[target + 1];dp[0] = 1;for (int i = 1; i <= N; i++) {for (int j = nums[i]; j <= target; j++) {dp[j] += dp[j - nums[i]];}}System.out.println(dp[target]);}

 6.例题2:子集和_不可重复

求从一些不重复数字中选取一些数字使得和为target的方案数,每个数字最多只能选一次,求方案数。这是一个01问题。

public static void main(String[] args) {int[] nums = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int target = 12;int N = 10;int[] dp = new int[target + 1];dp[0] = 1;for (int i = 1; i <= N; i++) {for (int j = target; j >= nums[i]; j--) {dp[j] += dp[j - nums[i]];}}System.out.println(dp[target]);}

 7.例题3:2022

从1到2022个数中,选择10个数,求这10个数之和为2022的方案数。这是一个二维背包问题。

	public static void main(String[] args) {long[][] dp = new long[11][2023];dp[0][0] = 1;for (int i = 1; i <= 2022; i++) {for (int j = 10; j >= 1; j--) {for (int k = 2022; k >= i; k--) {dp[j][k] += dp[j - 1][k - i];}}}System.out.println(dp[10][2022]);}

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

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

相关文章

python的数据结构

文章目录 python的数据结构列表当做堆栈使用将列表当作队列使用 python的数据结构 列表 (List)&#xff1a;一种有序的集合&#xff0c;可以包含多个项目。列表中的项目可以轻松地添加、删除或更改。 my_list [1, 2, 3, 4, 5]列表当做堆栈使用 堆栈是一种后进先出&#xff…

代理IP安全问题:在国外使用代理IP是否安全

目录 前言 一、国外使用代理IP的安全风险 1. 数据泄露 2. 恶意软件 3. 网络攻击 4. 法律风险 二、保护国外使用代理IP的安全方法 1. 选择可信的代理服务器 2. 使用加密协议 3. 定期更新系统和软件 4. 注意网络安全意识 三、案例分析 总结 前言 在互联网时代&…

【postgresql 基础入门】带过滤条件的查询,where子句中的操作符介绍,案例展示,索引失效的大坑就在这里

查询数据-过滤数据 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 ​开源贡献&#xff1a; toadb开源库 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#…

翻译平台翻译模型大模型 英翻中 en-zh 评测

评测语句 Trump was always bothered by how Trump Tower fell 41 feet short of the General Motors building two blocks north 结论 大模型翻译最佳&#xff0c;第三方里百度次之&#xff0c;翻译模型还不太行 测试过程 翻译模型 facebook mbart-large-50-many-to-many-…

【Unity】实现从Excel读取数据制作年份选择器

效果预览&#xff1a; 此处利用Excel来读取数据来制作年份选择器&#xff0c;具体步骤如下。 如果只是制作年份选择器可以参考我这篇文章&#xff1a;构建简单实用的年份选择器&#xff08;简单原理示范&#xff09; 目录 效果预览&#xff1a; 一、 Excel准备与存放 1.1 …

openssl3.2 - exp - calc PE file checksum and SHA3-512

openssl3.2 - exp - calc PE file checksum and SHA3-512 概述 想在程序中, 对自身的PE内容算校验和和HASH, 然后送给服务端判断PE文件是否被修改了. 前几天, 看了一个资料, 里面有算PE校验和的实现. 迁移到自己工程. 但是没有算HASH, 正好已经将openssl官方demo过了一遍, 有…

K8s Pod资源管理组件

目录 Pod基础概念 在Kubrenetes集群中Pod有如下两种使用方式 pause容器使得Pod中的所有容器可以共享两种资源 网络 存储 总结 kubernetes中的pause容器主要为每个容器提供功能 Kubernetes设计这样的Pod概念和特殊组成结构的用意 通常把Pod分为以下几类 自主式Pod 控…

【字符串】-Lc3-无重复字符的最长子串(indexOf(String str, int fromIndex))

写在前面 最近想复习一下数据结构与算法相关的内容&#xff0c;找一些题来做一做。如有更好思路&#xff0c;欢迎指正。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.代码 写在后面 一、场景描述 给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 &…

input css padding

这样控件会跑出外套控件在HTML JSP里面是经常出现的。但有些外国adobe的as控件不存在这种情况&#xff0c;这是因为内层控件定义的时候不能超出外层控件的范围。 修改下&#xff1a;去掉原来css padding&#xff0c;然后加上宽度和高度

C语言 常量

常量是固定值&#xff0c;在程序执行期间不会改变。这些固定的值&#xff0c;又叫做字面量。 常量可以是任何的基本数据类型&#xff0c;比如整数常量、浮点常量、字符常量&#xff0c;或字符串字面值&#xff0c;也有枚举常量。 常量就像是常规的变量&#xff0c;只不过常量的…

EAP-TLS实验之Ubuntu20.04环境搭建配置(FreeRADIUS3.0)(四)

该篇主要介绍了利用配置ca.cnf、server.cnf、client.cnf在certs路径下生成证书文件&#xff08;非执行bootstrap脚本&#xff0c;网上也有很多直接通过openssl命令方式生成的文章&#xff09;&#xff0c;主要参考&#xff08;概括中心思想&#xff09;官方手册&#xff0c;以及…

s-table和columns初始化不完整,造成table文件的filter报错

问题 顺藤摸瓜找errorHandler.js文件 发现文件并没有什么问题 顺藤摸瓜找index.vue文件 首先找到报错的filter&#xff0c;发现与columnsSetting相关 找到columnsSetting发现等于columns 返回自己使用S-table组件的地方&#xff0c;发现columns初始化时仅初始化为ref()未表明…

统信软件:统一操作系统 UOS 代言人

这是ren_dong的第32篇原创 1、Deepin Deepin&#xff1a;最受欢迎的民用国产操作系统 2008 年,Deepin 操作系统最早版本正式发布&#xff0c;是由 深之度创始人刘闻欢组织团队研发的基于 Debian 的本地化 Linux 操作系统 2011 年,武汉深之度科技有限公司成立&#xff0c;开始产…

Facebook的虚拟社交愿景:元宇宙时代的新起点

在当今数字化时代&#xff0c;社交媒体已经成为人们生活中不可或缺的一部分。而随着科技的不断进步和社会的发展&#xff0c;元宇宙已经成为了人们关注的热点话题之一。作为社交媒体的领军企业之一&#xff0c;Facebook也在积极探索虚拟社交的未来&#xff0c;将其视为元宇宙时…

LeetCode 2886.改变数据类型

DataFrame students ------------------- | Column Name | Type | ------------------- | student_id | int | | name | object | | age | int | | grade | float | ------------------- 编写一个解决方案来纠正以下错误&#xff1a; grade 列被存储为浮点数&#xff0c;将它转…

6U VPX全国产飞腾D2000/8核+复旦微FPGA信息处理主板

产品特性 产品功能 飞腾计算平台&#xff0c;国产化率100% VPX-MPU6503是一款基于飞腾D2000/8核信息处理主板&#xff0c;采用由飞腾D2000处理器飞腾X100桥片的高性能计算机模块&#xff0c;双通道16G贴装内存&#xff0c;板载128G 固态SSD&#xff1b;预留固态盘扩展接口&…

cppzmq入门

cppzmq是一个基于ZeroMQ的开源C 库&#xff0c;用于构建分布式和并发应用程序。它提供了与ZeroMQ消息队列进行通信的简单接口。本文将介绍cppzmq的基本概念、常用模式以及示例代码。 基本概念 ZeroMQ&#xff1a;ZeroMQ是一个轻量级的消息队列库&#xff0c;它允许应用程序通过…

LaTeX笔记

文章目录 基本操作文本加粗 图片插入引用 表格插入引用 公式插入引用 参考文献超链接跳转问题修改hyperref包属性&#xff0c;去掉方框 latex入门指南&#xff1a;插入图片、表格、公式方法一览_latex插入表格-CSDN博客 基本操作 文本加粗 先选中&#xff0c;再 ctrlb 图片…

试题 算法训练 礼物

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 JiaoShou在爱琳大陆的旅行完毕&#xff0c;即将回家&#xff0c;为了纪念这次旅行&#xff0c;他决定带回一些礼物给好朋友。…

蓝桥杯第十二届电子类单片机组程序设计

目录 前言 蓝桥杯大赛历届真题_蓝桥杯 - 蓝桥云课&#xff08;点击查看&#xff09; 单片机资源数据包_2023&#xff08;点击下载&#xff09; 一、第十二届比赛原题 1.比赛题目 2.题目解读 蓝桥杯第十四届电子类单片机组程序设计_蓝桥杯单片机哪一届最难-CSDN博客 二、…