锦鲤镇楼

1.题目描述:

时间限制:1.0s 内存限制:256.0MB
关键字:01背包 动态规划
问题描述
  金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过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))
输出格式
  输出文件只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(<100000000)。
样例输入
1000 5
800 2
400 5
300 5
400 3
200 2
样例输出
3900

2.代码示例

import java.util.Scanner;public class Action
{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int m = sc.nextInt();int[][] arr = new int[m][2];for (int i=0; i<m; i++){for (int j=0; j<2; j++){arr[i][j] = sc.nextInt();}}int[] temp = new int[N+1];for (int i=0; i<m; i++){for (int j=N; j>0; j--){if (j>arr[i][0]){if (temp[j-arr[i][0]] + arr[i][0] * arr[i][1] > temp[j]){temp[j] = temp[j-arr[i][0]] + arr[i][0] * arr[i][1];}elsecontinue;}}}System.out.println(temp[N]);}
}

3、测试结果:(测试工具蓝桥杯指定:Eclipse)

祝你在大学的时候能获得一个国家级的算法比赛的国二级别以上的成绩,这将是你一生的财富。

Java 01背包【动态规划·蓝桥杯练习题】(相信杨超越,相信锦鲤,默默努力,其它的看天意)相关推荐

  1. Java算法学习:蓝桥杯——地宫寻宝(DFS+动态规划—记忆型递归)

    Java算法学习:蓝桥杯--地宫寻宝(DFS✖记忆型递归) 题目: 标题:地宫取宝X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签.地宫的入口在左上角,出 ...

  2. 蓝桥杯练习题Java实现 入门训练 Fibonacci数列

    蓝桥杯练习题Java实现 入门训练 Fibonacci数列 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,F ...

  3. 矩阵快速幂+动态规划=蓝桥杯 垒骰子

    矩阵快速幂+动态规划=蓝桥杯 垒骰子 如果还不知道什么是矩阵快速幂,可以参加我的另一篇文章:矩阵快速幂详解 题目 分析 看到 nnn 的范围达到了 10910^{9}109 ,如果使用暴力搜索是不现实 ...

  4. 蓝桥杯练习题 回文数

    蓝桥杯练习题 回文数 问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数. 输出格式 按从小到大的顺序输出满足条件的四位十进制数. #include< ...

  5. 第五届蓝桥杯校内选拔赛试题java组_第五届蓝桥杯校内选拔赛试题java组

    第五届"蓝桥杯"全国软件和信息技术专业人才大赛 校内选拔赛试题(Java组) 第一部分:准备工作: 1.在D:盘中建立一个以自己"学号+姓名"命名的考生文件夹. ...

  6. C语言(CED)01背包——动态规划第二题

    一.问题描述 给定n种物品和一个背包.物品i的质量Wi,其价值Vi,背包的容量为c.问如何选择装入背包中的物品,使得装入背包中的物品总价值最大? 二.解题思想 01背包和最长公共子序列都是动态规划题目 ...

  7. 蓝桥杯练习题 Fibonacci数列

    下学期要跟着学校去参加蓝桥杯,所以在这里自己留念之用.(java) 1 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. import java.util.Scann ...

  8. 1038 01背包动态规划

    #1038 : 01背包 #include <iostream> #include <stdio.h> #include <algorithm>using name ...

  9. 01背包.动态规划.c语言实现

    二维dp数组01背包 确定dp数组以及下标的含义 使用二维数组,即dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少       2.递推公式:dp[i][ ...

最新文章

  1. tf.keras.losses.Poisson 损失函数 示例
  2. html渐变不兼容,CSS3实现文字渐变效果,兼容性最强系列!
  3. JFreeChart基本的用法实例(一)
  4. linux下的c语言控制灯闪烁,C语言实现LED灯闪烁控制
  5. 几种C#程序读取MAC地址的方法
  6. Python 常用函数 - Python入门教程
  7. 2020年十大开源漏洞回顾
  8. java多线程-慎重使用volatile关键字
  9. OpenCV能调用的摄像头类型
  10. 开启进程的两种方式:类、函数
  11. c语言中如何确保一个程序是单例的_浅谈设计模式——单例模式
  12. Unity开发手机游戏从第一行代码到Taptap上线,我经历了什么
  13. 国有银行信息科技岗笔试内容
  14. License之外,社区的规则与潜规则
  15. 2021年陕西葡萄种植、生产及出口情况分析[图]
  16. java list clear 垃圾回收_java垃圾回收机制
  17. Python:根据身高、体重计算BMI指数
  18. 10. 正则表达式与JSON
  19. linux 16.04 更换国内清华源
  20. 计算10000以内的平方数

热门文章

  1. 深度学习总结:GAN,3种方式实现fixedGtrainD,fixedDtrainG, retain, detach
  2. 完全背包问题从简单到复杂
  3. Go interface 操作示例
  4. 面对对象编程(OOP, Object Oriented Programming)及其三个基本特性
  5. MAC MAMP 中安装配置使用 ThinkPHP
  6. 【MOSS】SPListItems操作
  7. VC中怎么读取.txt文件
  8. 高手教你如何用香技巧香水达人教你用香省钱法 - 生活至上,美容至尚!
  9. c#:winform鼠标拖动窗口大小时,设定窗口最小尺寸
  10. 调试Android之system.img的来回切换。