Java 算法 开心的金明
目录标题
- 题目描述
- 解题思路
- 代码
题目描述
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一 个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N元)的前提 下,使每件物品的价格与重要度的乘积的总和最大。
设第j件物品的价格为v[j],重要度为w[j],共选中了k件物品,编号依次为 j1,j2,……,jk,则所求的总和为:
v[j1]*w[j1]+v[j2]*w[j2]+ …+v[jk]w[jk]。(其中为乘号)
请 你帮助金明设计一个满足要求的购物单。
输入
输入描述:
输入文件 的第1行,为两个正整数,用一个空格隔开:
N m
(其中N(<30000)表示总钱 数,m(<25)为希望购买物品的个数。)
从第2行到第m+1行,第j行给出了编号为j-1的物品的基本数据,每行有2个非负整数
v p
(其中v表示该物品的价格(v<=10000),p表示该物品的重要度(1~5))
输入样例:
1000 5
800 2
400 5
300 5
400 3
200 2
输出
输出描述:
输出文件只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(<100000000)。
输出样例:
3900
HINT:时间限制:1.0s 内存限制:256.0MB
解题思路
把数据放入一个二维数组中,然后依次判断是否能买,若能买的话取最大值相加直到物品的价格相加大于或等于n的值结束。
代码
import java.util.*;
import java.util.concurrent.ConcurrentMap;public class Main {public static void main(String[] args) {Scanner in=new Scanner(System.in);int n=in.nextInt();//最大总价格int m=in.nextInt();//物品数目int[][] a =new int[m+1][2];for(int i=1;i<=m;i++){a[i][0]=in.nextInt();//物品表示价格a[i][1]=in.nextInt();//物品表示重要度}int[][] f =new int[m+1][n+1];//f[i][j]表示前i个物品,总价格不超过j的前提下所获得的最大价值for(int i=1;i<=m;i++){for(int j=0;j<=n;j++){if(j<a[i][0])//如果物品太贵买不起,最大价值为前面i-1个的最大价值f[i][j]=f[i-1][j];if(j>=a[i][0])//如果买的起f[i][j]=Math.max(f[i-1][j],f[i-1][j-a[i][0]]+a[i][0]*a[i][1]);}}System.out.println(f[m][n]);}
}
Java 算法 开心的金明相关推荐
- CSDN简单编程题解(幸运数字、开心的金明、传奇霸业)
01.幸运数字 题目描述:小艺定义一个幸运数字的标准包含3条: 1.仅包含4或7. 2.幸运数字的前半部分数字之和等于后半部分数字之和. 3. 数字的长度是偶数. 思路:先排除长度为奇数,再排除包含数 ...
- 第5课 开心的金明《聪明人的游戏:信息学探秘.提高篇》(优化空间)
[NOIP2006 普及组] 开心的金明 - 洛谷 """ 第5课 开心的金明<聪明人的游戏:信息学探秘.提高篇>(优化空间) https://www.luo ...
- 第5课 开心的金明《聪明人的游戏:信息学探秘.提高篇》
[问题描述] 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过n元 ...
- A1156. 开心的金明
A1156. 开心的金明 试题来源 NOIP2006 普及组 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你 ...
- 【NOIP2006PJ】开心的金明(happy)
目录 前言 题目概述 输入 输出 样例输入 样例输出 思路 代码 二维的AC代码 一维的AC代码 前言 光阴似箭,日月如梭.大家好,我盛艺承又回来了!今天给大家讲一下NOIP2006的题目--开心的金 ...
- AcWing 426. 开心的金明(01背包,我爱喝水,天天健康,牛客切不出,喝下水)
AcWing 426. 开心的金明 AC # include <bits/stdc++.h> using namespace std; const int N = 3e4+10; type ...
- 开心的金明(动态规划 dp C++)
开心的金明 时空限制 1000ms / 65MB 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购 ...
- 蓝桥杯 ALGO31 算法训练 开心的金明 java版
问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过N元钱 ...
- 蓝桥杯 ALGO-31 算法训练 开心的金明
问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说: "你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过N元 ...
最新文章
- 移动端大图缩放模糊_关于移动端小图标模糊问题的解决方法
- 如何向学妹解释在地址栏中输入网址后发生了什么?
- [设计模式] ------ 代理模式
- SMS短信通API下行接口参数
- 三菱基于雷诺平台推全新跑车 搭1.1T引擎
- uni-app中的样式
- mysql binlog 过期_mysql清理过期binlog堵塞数据库
- 一、auto_test_base
- html可编辑下拉选项卡,bootstrap可编辑下拉框jquery.editable-select
- spring MongoDB 集成(分页)
- Modern Python Cookbook》(Python经典实例)笔记 2.3 编写长行代码
- cryptojs php,CryptoJS简单使用方法
- FPGA深度学习加速(1) - Xilinx ug892-Vivado design flows overview (Vivado设计流程简述) - 阅读笔记
- (概率论习题册题解)第二章 随机变量及其分布
- android T 前台Service
- HTML5页面结构标签
- MSCNN论文解读-A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection
- STN向城域云网演进浅析
- 「季淳卿」零基础学习 MyBatis-Plus-springBoot(笔记总结)
- Apollo record文件格式
热门文章
- python个人微信支付接口_Python实现微信小程序支付功能
- 用GDB调试Segmentation Fault错误
- 三维空间刚体运动5:详解SLAM中显示机器人运动轨迹及相机位姿(原理流程)
- vue使用dialog关闭前调用_element-ui的dialog如何关闭自身?
- 常用的linux远程管理方法,常用windows下远程管理Linux服务器的方法
- 山东大学linux应用实验五,【Linux】山东大学Linux应用课程实验记录
- UE4 Blueprint编译过程
- 美团将主办 ICDAR2019「中文门脸招牌文字识别」比赛,并公开首个真实场景招牌图像数据集...
- DUBBO与ZOOKEEPER、SPRINGMVC整合和使用
- VMWare 全屏后最小化死机