目录标题

  • 题目描述
  • 解题思路
  • 代码

题目描述

金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过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 算法 开心的金明相关推荐

  1. CSDN简单编程题解(幸运数字、开心的金明、传奇霸业)

    01.幸运数字 题目描述:小艺定义一个幸运数字的标准包含3条: 1.仅包含4或7. 2.幸运数字的前半部分数字之和等于后半部分数字之和. 3. 数字的长度是偶数. 思路:先排除长度为奇数,再排除包含数 ...

  2. 第5课 开心的金明《聪明人的游戏:信息学探秘.提高篇》(优化空间)

    [NOIP2006 普及组] 开心的金明 - 洛谷 """ 第5课 开心的金明<聪明人的游戏:信息学探秘.提高篇>(优化空间) https://www.luo ...

  3. 第5课 开心的金明《聪明人的游戏:信息学探秘.提高篇》

    [问题描述] 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过n元 ...

  4. A1156. 开心的金明

    A1156. 开心的金明 试题来源 NOIP2006 普及组 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你 ...

  5. 【NOIP2006PJ】开心的金明(happy)

    目录 前言 题目概述 输入 输出 样例输入 样例输出 思路 代码 二维的AC代码 一维的AC代码 前言 光阴似箭,日月如梭.大家好,我盛艺承又回来了!今天给大家讲一下NOIP2006的题目--开心的金 ...

  6. AcWing 426. 开心的金明(01背包,我爱喝水,天天健康,牛客切不出,喝下水)

    AcWing 426. 开心的金明 AC # include <bits/stdc++.h> using namespace std; const int N = 3e4+10; type ...

  7. 开心的金明(动态规划 dp C++)

    开心的金明 时空限制 1000ms / 65MB 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购 ...

  8. 蓝桥杯 ALGO31 算法训练 开心的金明 java版

    问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过N元钱 ...

  9. 蓝桥杯 ALGO-31 算法训练 开心的金明

    问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说: "你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过N元 ...

最新文章

  1. 移动端大图缩放模糊_关于移动端小图标模糊问题的解决方法
  2. 如何向学妹解释在地址栏中输入网址后发生了什么?
  3. [设计模式] ------ 代理模式
  4. SMS短信通API下行接口参数
  5. 三菱基于雷诺平台推全新跑车 搭1.1T引擎
  6. uni-app中的样式
  7. mysql binlog 过期_mysql清理过期binlog堵塞数据库
  8. 一、auto_test_base
  9. html可编辑下拉选项卡,bootstrap可编辑下拉框jquery.editable-select
  10. spring MongoDB 集成(分页)
  11. Modern Python Cookbook》(Python经典实例)笔记 2.3 编写长行代码
  12. cryptojs php,CryptoJS简单使用方法
  13. FPGA深度学习加速(1) - Xilinx ug892-Vivado design flows overview (Vivado设计流程简述) - 阅读笔记
  14. (概率论习题册题解)第二章 随机变量及其分布
  15. android T 前台Service
  16. HTML5页面结构标签
  17. MSCNN论文解读-A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection
  18. STN向城域云网演进浅析
  19. 「季淳卿」零基础学习 MyBatis-Plus-springBoot(笔记总结)
  20. Apollo record文件格式

热门文章

  1. python个人微信支付接口_Python实现微信小程序支付功能
  2. 用GDB调试Segmentation Fault错误
  3. 三维空间刚体运动5:详解SLAM中显示机器人运动轨迹及相机位姿(原理流程)
  4. vue使用dialog关闭前调用_element-ui的dialog如何关闭自身?
  5. 常用的linux远程管理方法,常用windows下远程管理Linux服务器的方法
  6. 山东大学linux应用实验五,【Linux】山东大学Linux应用课程实验记录
  7. UE4 Blueprint编译过程
  8. 美团将主办 ICDAR2019「中文门脸招牌文字识别」比赛,并公开首个真实场景招牌图像数据集...
  9. DUBBO与ZOOKEEPER、SPRINGMVC整合和使用
  10. VMWare 全屏后最小化死机