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

华为OD机试-查找充电设备组合-2022Q4 A卷-Py/Java/JS

某个充电站,可提供n个充电设备,每个充电设备均有对应的输出功率。任意个充电设备组合的输出功率总和,均构成功率集合P的1个元素。功率集合P的最优元素,表示最接近充电站最大输出功率P_max的元素
输入描述
输入为3行:
第1行为充电设备个数n
第2行为每个充电设备的输出功率P_i
第3行为充电站最大输出功率P_max

输出描述
功率集合P的最优元素
备注
充电设备个数 n >0
最优元素必须小于或等于充电站最大输出功率P_max
示例1:

输入

4
50 20 20 60

90
输出

90
说明
当充电设备输出功率50、20、20组合时,其输出功率总和为90,最接近充电站最大充电输出功率,因此最优元素为90。

示例2:

2
50 40

30
输出
0
说明
所有充电设备的输出功率组合,均大于充电站最大充电输出功率30,此时最优元素值为0。

Java 代码

import java.util.Scanner;
import java.util.*;
import java.util.stream.Collectors;
import java.math.BigInteger;
import java.util.stream.Stream;class Main {public static void main(String[] args) {// 处理输入Scanner in = new Scanner(System.in);int n = in.nextInt();in.nextLine();Integer[] p = Arrays.stream(in.nextLine().split(" ")).map(Integer::parseInt).toArray(Integer[]::new);int p_max = in.nextInt();//dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。int[][] dp = new int[n + 1][p_max + 1];// 初始化, i为0,存放编号0的物品的时候,各个容量的背包所能存放的最大价值。for (int j = p_max; j >= p[0]; j--) {dp[0][j] = dp[0][j - p[0]] + p[0];}for (int i = 1; i < n; i++) {  // 遍历物品for (int j = 0; j <= p_max; j++) { // 遍历背包容量// 背包容量为j,如果物品i的体积,此时dp[i][j]就是dp[i - 1][j]if (j < p[i]) {dp[i][j] = dp[i - 1][j];} else {dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - p[i]] + p[i]);}}}System.out.println(dp[n-1][p_max]);}}

Python代码

import functools
import sys
from collections import Counter, defaultdict
import copy
from itertools import permutations
import re
import math
import sys#处理输入
n = int(input())
p = [int(x) for x in input().split(" ")]
p_max = int(input())#dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。
dp = [[0 for x in range(p_max + 1)] for y in range(n+1)]# 初始化, i为0,存放编号0的物品的时候,各个容量的背包所能存放的最大价值。
j = p_max
while(j >= p[0]):dp[0][j] = dp[0][j - p[0]] + p[0]j -= 1for i in range(1, n):  # 遍历物品for j in range(0, p_max+1): # 遍历背包容量# 背包容量为j,如果物品i的体积,此时dp[i][j]就是dp[i - 1][j]if (j < p[i]):dp[i][j] = dp[i - 1][j]else:dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - p[i]] + p[i])print(dp[n-1][p_max])

JS代码

function main(n,p,p_max) {//dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。let dp = new Array(n+1)for (let i=0;i<n+1;i++) {dp[i] = new Array(p_max+1).fill(0)}// 初始化, i为0,存放编号0的物品的时候,各个容量的背包所能存放的最大价值。let j = p_maxwhile(j >= p[0]){dp[0][j] = dp[0][j - p[0]] + p[0]j -= 1}for (let i=1;i<n;i++){  // 遍历物品for (let j=0;j<p_max+1;j++) { // 遍历背包容量// 背包容量为j,如果物品i的体积,此时dp[i][j]就是dp[i - 1][j]if (j < p[i])dp[i][j] = dp[i - 1][j]elsedp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - p[i]] + p[i])}}console.log(dp[n-1][p_max])}main(4,[50, 20, 20, 60],90)

相关文章:

华为OD机试-查找充电设备组合-2022Q4 A卷-Py/Java/JS

某个充电站&#xff0c;可提供n个充电设备&#xff0c;每个充电设备均有对应的输出功率。任意个充电设备组合的输出功率总和&#xff0c;均构成功率集合P的1个元素。功率集合P的最优元素&#xff0c;表示最接近充电站最大输出功率P_max的元素 输入描述 输入为3行: 第1行为充电设…...

免费好用的oa系统有哪些?盘点这几款!

免费好用的oa系统有哪些&#xff1f;盘点这几款&#xff01; 办公自动化&#xff08;OA&#xff09;&#xff0c;英文Office Automation的缩写。它可以通过特定流程或特定环节与日常事务联系在一起&#xff0c;使公文在流转、审批、发布等方面提高效率&#xff0c;实现办公管理…...

光伏发电系统模拟及其发电预测开源python工具pvlib

1. 太阳辐照量模拟 pysolar是一个用于计算太阳位置和辐照量的Python库。它是基于python语言编写的&#xff0c;可以方便地在各种python项目中使用。pysolar主要用于计算太阳的位置、太阳高度角、太阳方位角、日出和日落时间等信息。这些信息可以用于太阳能电池板和太阳能集热器…...

精彩回顾 | 2023工赋Meetup—上海站

2023工赋Meetup—上海站 2023年4月2日下午&#xff0c;在上海数字长宁体验馆举办的“价值驱动的数字化转型技术专场”Meetup圆满落幕&#xff0c;本次活动由工赋开发者社区主办&#xff0c;上海市工业互联网协会指导&#xff0c;长宁区东虹桥发展办公室和积梦智能联合主办。 …...

[oeasy]python0132_[专业选修]utf-8_unicode_transformation_format_8_编码方式

utf-8 回忆上次内容 上次再次输出了大红心♥ 找到了红心对应的编码黑红梅方都对应有编码 原来的编码叫做 ascii️ \u这种新的编码方式叫unicode包括了 中日韩字符集等 各书写系统的字符集 但是有个问题 拜这个字在字节中应该是b"\x62\xdc"两个字节 该如何理解b&qu…...

DNS 的解析过程以及相关问题

文章目录DNS解析过程DNS 为什么用 UDP简单说下怎么实现 DNS 劫持谈谈你对域名缓存的了解DNS解析过程 浏览器首先看看自己浏览器缓存有没有对应的IP记录&#xff0c;同时还要查询一下主机本地文件里面有没有对应的记录&#xff0c;如果有记录就没必要进行后面的步骤了。 浏览器…...

个人情况-单词练习

目录 前言原文兴趣爱好特长专业习惯理想志向情境常用单词性别家庭成员正面性格前言 加油 原文 1.come from… 来自…… I come from Shanghai. 我来自上海/我是上海人。 2.born[bɔrn]adj.出生的 be born into + 家庭 出身……的家庭 George was born into a poor fami…...

python天狗吃月 青少年编程电子学会python编程等级考试一级真题解析2022年9月

目录 python天狗吃月 一、题目要求 编程实现 二、解题思路 1、图形分析...

JAVA做语言国际化

项目场景&#xff1a; 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 例如&#xff1a;数据传输过程中数据不时出现丢失的情况&#xff0c;偶尔会丢失一部分数据 APP 中接收数据代码&#xff1a; Overridepublic void run() {bytes mmInStream.read(buff…...

面试题 16.19. 水域大小

题目链接 面试题 16.19. 水域大小 mid 题目描述 你有一个用于表示一片土地的整数矩阵 land&#xff0c;该矩阵中每个点的值代表对应地点的海拔高度。若值为 0 则表示水域。由垂直、水平或对角连接的水域为池塘。 池塘的大小是指相连接的水域的个数。 编写一个方法来计算矩阵…...

在vscode中切换分支,显示已经删除的远程分支

运行命令&#xff1a;修剪远程分支 git remote prune origin 然后远程的已经删除的分支就不见了。...

森林督查违法图斑内业报告高效制作实践技术

Python已成为最热门的编程语言之一&#xff0c;与arcpy、geopandas等行业软件包相结合&#xff0c;能极大程度地减轻森林督查违法图斑内业报告制作的工作量&#xff0c;显著提升工作效率。为了提升广大从业人员在森林违法图斑内业报告制作等方面的技能&#xff0c;内容主要包括…...

华为OD机试-日志限流-2022Q4 A卷-Py/Java/JS

某软件系统会在运行过程中持续产生日志&#xff0c;系统每天运行N单位时间&#xff0c;运行期间每单位时间产生的日志条数保行在数组 records中。records[i]表示第i单位时间内产生日志条数。 由于系统磁盘空间限制&#xff0c;每天可记录保存的日志总数上限为total条。 如果一天…...

ChatGPT能胜任高级程序员吗?

与开发人员信任的其他软件开发工具不同&#xff0c;AI工具在训练、构建、托管和使用方式等方面都存在一些独特的风险。 自2022年底ChatGPT发布以来&#xff0c;互联网上便充斥着对其几乎相同比例的支持和怀疑的论调。不管你是否喜欢它&#xff0c;AI正在逐步进入你的开发组织。…...

effective c++ item 25-29

item25&#xff1a;自定义swap函数 namespace std{template<typename T>void swap(T& a, T& b){T temp(a); // T要满足拷贝构造和拷贝赋值a b;b temp; } }1、Pimpl 2、自定义swap item26:尽可能延后变量的定义 case 1: temp j; for(int i 0; i < n; …...

MasterCAM实体旋转命令相关几个问题:曲线相交于边缘等

MasterCAM版本&#xff1a;2022 目的&#xff1a;通过旋转画杯子边缘主体 内外环直径分别是&#xff1a;56、60mm 命令&#xff1a;实体 - 旋转 问题&#xff1a; 一、处理实体期间错误parasolid(r) kernel 界面错误PK 错误代码&#xff1a;942-曲线相交于边缘 对应参数&a…...

p标签需要设置宽高吗?不用

Dusk: # 引用补丁&#xff0c;开头必须以 -javaagent: 开头&#xff0c;后面跟着补丁的绝对路径&#xff08;可根据你实际的位置进行修改&#xff09;,注意路径一定要填写正确&#xff0c;且不能包含中文&#xff0c;否则会导致 IDEA 无法启动-javaagent:D:/ja-netfilter/ja-ne…...

Andorid 事件分发机制案例实操与解析

文章目录为什么要理解Android事件分发机制&#xff1f;滑动冲突类问题我们以什么开始&#xff1f;代码如下&#xff1a;activity xml 代码&#xff1a;Activity代码&#xff1a;item_user.xml代码修改后代码如下&#xff1a;Activity xmlactivity代码item_gift.xml问题出现了An…...

Git 版本控制/项目迭代

一、Git的作用/为什么要进行版本控制&#xff1f; 什么是项目迭代&#xff1f; 搞开发的时候我们不是一次性就做好平台的所有功能&#xff0c;而是先上线一个功能差不多的版本让用户用着&#xff0c;然后不断迭代、修改&#xff0c;上线新的版本&#xff0c;所以一个项目就会…...

智慧农业大数据项目建设方案

智慧农业大数据项目建设方案 目录 项目概述.................................... 6...

青龙面板自动化签到终极指南:30+平台一键签到,每天节省30分钟

青龙面板自动化签到终极指南&#xff1a;30平台一键签到&#xff0c;每天节省30分钟 【免费下载链接】check 青龙面板平台签到函数 项目地址: https://gitcode.com/gh_mirrors/check5/check 还在为每天繁琐的签到任务烦恼吗&#xff1f;签到盒青龙版是你的完美解决方案&…...

STM32 ADS1115接口文件(HAL库+硬件IIC)

STM32 ADS1115接口文件&#xff08;HAL库硬件IIC&#xff09; 【下载地址】STM32ADS1115接口文件HAL库硬件IIC 本资源包专为STM32系列微控制器设计&#xff0c;旨在简化通过HAL库利用硬件IIC接口与ADS1115高精度模拟到数字转换器(ADC)交互的过程。ADS1115是一款高性能的16位ΔΣ…...

用Python实现编译器前端:从Kaleidoscope到LLVM IR的实践指南

1. 项目概述&#xff1a;从“玩具”到“宝藏”的编译器学习之旅如果你对编译原理这门计算机科学的“硬核”课程感到既敬畏又头疼&#xff0c;觉得那些词法分析、语法树、中间代码优化等概念如同天书&#xff0c;那么你很可能已经尝试过一些经典的“龙书”配套项目&#xff0c;比…...

汽车电子工程师必看:ISO 16750-2023全套标准解读与实战应用指南

汽车电子工程师必看&#xff1a;ISO 16750-2023全套标准解读与实战应用指南 在汽车电子领域&#xff0c;每一次技术迭代都伴随着更严苛的可靠性要求。去年参与某新能源车企的域控制器项目时&#xff0c;我们团队曾因忽视化学负荷测试导致批量产品在盐雾试验中失效——这个价值七…...

保姆级教程:用Python+Matplotlib处理微波辐射计LV2数据,绘制专业温度廓线图

科研级气象数据可视化&#xff1a;PythonMatplotlib处理微波辐射计数据的完整实践指南 清晨5点23分&#xff0c;实验室的微波辐射计刚刚完成一次完整的温度廓线扫描。屏幕上跳动的数字背后&#xff0c;隐藏着从地面到平流层的大气热力学密码。对于大气科学研究者而言&#xff0…...

用YOLOv8和MMSegmentation实战:从血细胞检测到癌细胞分割(附完整代码)

医学影像实战&#xff1a;基于YOLOv8与MMSegmentation的细胞检测与分割全流程 在医疗影像分析领域&#xff0c;深度学习技术正逐步改变传统人工判读的低效模式。本文将带您完成两个典型医学影像任务的完整实现&#xff1a;使用YOLOv8进行血细胞检测分类&#xff0c;以及通过MMS…...

langchain4j笔记-09

RAG 1. easy rag Test void test03() {// 1. 创建模型// 2. 加载文档List<Document> documents ClassPathDocumentLoader.loadDocuments("excel");//List<Document> documents FileSystemDocumentLoader.loadDocuments("/home/langchain4j/docum…...

第二章:Compose入门—声明式UI编程

第二章&#xff1a;Compose 入门 — 声明式 UI 编程 Compose 的核心理念&#xff1a;用 Kotlin 代码声明 UI&#xff0c;而不是用 XML 布局文件。 2.1 传统 View 系统 vs Compose 对比项传统 View 系统Jetpack ComposeUI 描述XML 布局文件Kotlin 代码状态更新findViewById 手…...

KMS_VL_ALL_AIO终极指南:5分钟免费激活Windows和Office的完整方案

KMS_VL_ALL_AIO终极指南&#xff1a;5分钟免费激活Windows和Office的完整方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office的激活问题而烦恼吗&#xff1f;KMS_VL_ALL_…...

Translumo:5分钟掌握Windows实时屏幕翻译神器的完整指南

Translumo&#xff1a;5分钟掌握Windows实时屏幕翻译神器的完整指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否…...