luogu P1060 开心的金明

2024-01-12 00:38
文章标签 luogu 开心 p1060 金明

本文主要是介绍luogu P1060 开心的金明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://www.luogu.org/problem/P1060

题目描述

金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1−5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N元)的前提下,使每件物品的价格与重要度的乘积的总和最大。

设第jjj件物品的价格为 v [ j ] v_[j] v[j],重要度为 w [ j ] w_[j] w[j],共选中了k件物品,编号依次为 j 1 , j 2 , … , j k j_1,j_2,…,j_k j1,j2,,jk,则所求的总和为:

v [ j 1 ] × w [ j 1 ] + v [ j 2 ] × w [ j 2 ] + … + v [ j k ] × w [ j k ] v_[j_1] \times w_[j_1]+v_[j_2] \times w_[j_2]+ …+v_[j_k] \times w_[j_k] v[j1]×w[j1]+v[j2]×w[j2]++v[jk]×w[jk]

请你帮助金明设计一个满足要求的购物单。

输入格式

第一行,为2个正整数,用一个空格隔开:Nm(其中N(<30000)表示总钱数,m(<25)为希望购买物品的个数。)

从第2行到第m+1行,第j行给出了编号为j−1的物品的基本数据,每行有2个非负整数vp(其中v表示该物品的价格(v≤10000),p表示该物品的重要度(1−5)

输出格式

1个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(<100000000)。

输入输出样例

输入 #1

1000 5
800 2
400 5
300 5
400 3
200 2

输出 #1

3900

代码

#include<iostream>
#include<algorithm>
using namespace std;
int w[30],v[30],f[50000];//w数组为重要度,v数组为money,f是用来dp的数组
int n,m;//n是总物品个数,m是总钱数
int main()
{cin>>m>>n;//输入for(int i=1;i<=n;i++){cin>>v[i]>>w[i];w[i]*=v[i];//w数组在这里意义变为总收获(重要度*money)}for(int i=1;i<=n;i++)for(int j=m;j>=v[i];j--)f[j]=max(f[j],f[j-v[i]]+w[i]);cout<<f[m];return 0;
} 

这篇关于luogu P1060 开心的金明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/596245

相关文章

FHQ Treap模版(luogu P3369)

FHQ Treap模版(自用),带注释 #include<bits/stdc++.h>using namespace std;const int N=1e5+10;int n,root,idx;struct node{int l,r;int val,key,size;}tr[N];int getnew(int v){tr[++idx].val=v;//权值tr[idx].key=rand(

不管是开心还是伤心,都需要有人能够分享

在我们的生活中,有很多事都是需要我们和别人分享的。我们自己一个人能独自承受的东西很少,我们需要的是有人能够陪着我们,能够和我们一起分享。有人和我们一起分享,我们能够将快乐传递,将悲伤消灭。

带AI功能朵米客服系统3.5无限制开心版+搭建文档

带AI功能朵米客服系统3.5无限制开心版+搭建文档,朵米客服系统是一款全功能的客户服务解决方案,提供多渠道支持(如在线聊天、邮件、电话等),帮助企业建立与客户的实时互动。该系统具有智能分流功能,可以快速将客户请求分配给适当的客服人员,提高工作效率。同时,朵米客服系统还提供丰富的数据分析和报告功能,帮助企业了解客户需求和行为,从而优化服务质量。总体而言,朵米客服系统致力于提升客户体验,提高客服效率,

day-49 让所有学生保持开心的分组方法数

思路 利用Collections.sort()函数对数组进行排序,依次向后遍历即可,如果nums.get(i)<i+1&&nums.get(i+1)>i+1 解题过程 注意特殊情况:全选和不选要单独讨论 Code class Solution {public int countWays(List<Integer> nums) {int len=nums.size();Collections

数学题--2860. 让所有学生保持开心的分组方法数

2860. 让所有学生保持开心的分组方法数 给你一个下标从 0 开始、长度为 n 的整数数组 nums ,其中 n 是班级中学生的总数。班主任希望能够在让所有学生保持开心的情况下选出一组学生: 如果能够满足下述两个条件之一,则认为第 i 位学生将会保持开心: 这位学生被选中,并且被选中的学生人数 严格大于 nums[i] 。这位学生没有被选中,并且被选中的学生人数 严格小于 nums[i]

[M排序] lc2860. 让所有学生保持开心的分组方法数(排序+贪心+简洁代码实现+思维)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接:2860. 让所有学生保持开心的分组方法数 题单: 思维 01.1、思维 2. 题目解析 有一定的思考难度,不太好归类,就放到 思维 里面吧。 思路: 首先分析题目中的一些关键信息,能得出来,选法是唯一的,且选的话,会把小于当前值的前面部分全部选了。那么此时问题就转化为 选0、选1、选2…选n 个的问题

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版; CeoMax-Pro是一款极致美观强大的WordPress付费资源下载主题,它能满足您所有付费资源下载的业务需求! 你的想法与业务不能被主题所限制!CeoMax-Pro强大的功能,在不久的将来它能实现你一切幻想!我们也在为此而不断努力。 适用于资源站、下载站、交易站、素材站、源码站、课程站、CMS等等等等,它

开心第一课:健康坐姿

文章目录 引言保持脊柱的自然伸展选择一把合适的座椅 引言 建议坐位时间超过 30 分钟,就起身活动一下,促进血液循环,预防久坐带来的各种健康问题。 保持脊柱的自然伸展 正确的骨盆位置是使坐位时身体重量都作用在双侧的坐骨结节上,在结节的顶端有滑囊,滑囊分泌液体减少组织间的摩擦和压力。 坐位时,摸到臀部下方的一个骨性突起就是坐骨结节。 腰椎和胸椎保持自然的曲度,臀

Guitar Pro 8.2.1 Build 32+Soundbanks Win/Mac音色库 开心激活版 音乐软件Guitar Pro 8中文破解版

音乐软件Guitar Pro 8中文破解版是一个受吉他手喜爱的吉他和弦、六线谱、BASS 四线谱绘制、打印、查看、试听软件,它也是一款优秀的 MIDI 音序器,MIDI 制作辅助工具,可以输出标准格式的 MIDI。GP 的过人之处就在于它可以直接用鼠标和键盘按标准的六线谱、四线谱进行乐谱输入、查看、打印和试听(可以实时、自动滚屏、多种模式的显示单声部或乐曲总谱),在做弹拨乐器的滑音、倚音、推弦、揉

nyoj49 开心的小明

开心的小明 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早小明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品