P1060 [NOIP2006 普及组] 开心的金明

初学背包问题心得 今天在洛谷上刷了一道这样的题(背包问题入门) 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的NN元。于是,他把每件物品规定了一个重要度,分为55等:用整数1-51−5表示,第5... 阅读详情

[NOIP2006 普及组] 开心的金明

题目描述

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

设第jjj件物品的价格为 vjv_jvj​,重要度为 wjw_jwj​,共选中了 kkk 件物品,编号依次为 j1,j2,…,jkj_1,j_2,…,j_kj1​,j2​,…,jk​,则所求的总和为:

vj1×wj1+vj2×wj2…+vjk×wjkv_{j_1} \times w_{j_1}+v_{j_2} \times w_{j_2} …+v_{j_k} \times w_{j_k}vj1​​×wj1​​+vj2​​×wj2​​…+vjk​​×wjk​​。

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

输入格式

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

从第 222 行到第 m+1m+1m+1 行,第 jjj 行给出了编号为 j−1j-1j−1 的物品的基本数据,每行有 222 个非负整数 v,pv,pv,p(其中 vvv 表示该物品的价格 (v≤10000)(v \le 10000)(v≤10000),ppp 表示该物品的重要度(1≤p≤51\le p\le51≤p≤5)。

输出格式

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

样例 #1

样例输入 #1

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

样例输出 #1

3900

提示

NOIP 2006 普及组 第二题

题意

给出 NNN 个物品,第 iii 个物品的花费是 xix_ixi​,价值是 xiyix_iy_ixi​yi​,如果最大花费是 MMM,求最大的价值和。

思路

经典的 dp。

一、状态:因为花费是最重要的,所以 dpidp_idpi​ 表示花费为 iii 时,最大的价值和。

二、转移:当 j>ij>ij>i 时,分为两种情况:买或不买,最终要取最大值,所以 dpj=max⁡(dpj,dpj−xi+xi×yi)dp_j=\max(dp_j,dp_{j-x_i}+x_i\times y_i)dpj​=max(dpj​,dpj−xi​​+xi​×yi​)。注意:jjj 必须倒序遍历,如果是正序遍历,dpj−xidp_{j-x_i}dpj−xi​​ 就会重复取,答案就错误了。

三、答案:每个商品都得考虑一遍,所以答案是 dpndp_ndpn​。

代码

#include <bits/stdc++.h>
#define int long long
using namespace std;

int n,m;
int x,y;
int dp[30010];

void solve()
{
	cin >> n >> m;
	for (int i = 1;i <= m;i++)
	{
		cin >> x >> y;
		for (int j = n;j >= x;j--)
			dp[j] = max(dp[j],dp[j-x]+x*y);
	}
	cout << dp[n];
}

signed main()
{
	solve();
	return 0;
}
【题解】 金明的预算方案 (NOIP 2006 提高组 第二题) 题目来源:洛谷 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具... 阅读详情

相关推荐

【题解-洛谷】P1060 [NOIP 2006 普及组] 开心的金明

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

写代码的犄角旮瘩 1155

算法训练(VIP)——开心的金明

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

六级不考550+不改名 592

第5课 开心的金明(C++)《聪明人的游戏提高篇》.pdf

第5课 开心的金明(C++)《聪明人的游戏提高篇》

K10414 开心的金明 [happy]

K10414 开心的金明 [happy] 解析

sy4455716的博客 894

博通PEX89000 PCIe 5.0交换芯片:如何为AI集群构建高效GPU互联架构

本文深入解析了博通PEX89000 PCIe 5.0交换芯片如何为AI集群构建高效的GPU互联架构。该芯片通过提供高带宽、低延迟的PCIe 5.0交换能力,打破传统GPU通信的带宽瓶颈,并支持多主机共享、资源池化及软件定义拓扑,从而显著提升大规模AI训练与推理任务的效率与资源利用率。

weixin_29214559的博客 412

扩增子分析|基于零模型的群落确定性和随机性构建过程——R实战

周集中教授团队多年在群落确定性和随机性过程深耕,于2017年总结出来下述图表中的计算路径,广受生态领域研究者的推崇。本文基于该计算路径,梳理了整理了邓晔老师组的代码,通过一个实例演示了计算过程和结果。

weixin_46814750的博客 4673

【C++ 真题】P1060 [NOIP 2006 普及组] 开心的金明

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

Ω 883

海思Hi3516CV610--SPI NAND Flash移植实战:从手册到驱动的完整适配

本文详细介绍了海思Hi3516CV610芯片上SPI NAND Flash的移植实战,包括从手册解读到驱动适配的完整流程。以GD5F2GM7UEYIGR Flash为例,重点讲解了关键参数确认、模式选择、时序配置以及U-Boot和Linux内核驱动的具体实现步骤,帮助开发者快速完成Flash移植工作。

weixin_29158413的博客 447

P1060 [NOIP 2006 普及组] 开心的金明

设dp[j]表示使用j元能获得的最大价值总和‌核心收获掌握01背包的空间优化技巧理解价值计算的灵活变形‌同类问题洛谷P1048 采药(标准01背包)洛谷P1164 小A点菜(求方案数)‌优化方向当N极大时可用贪心近似物品可分割时用分数背包‌易错点忘记逆序更新导致错误价值计算遗漏重要度系数该解法完美展示了如何将实际问题抽象为背包模型。尝试输出具体选择的物品修改为完全背包问题解法研究二进制优化的多重背包实现。

Yiping2012ABC的博客 953

别再死记硬背公式了!用Unity ShaderGraph从零实现一个皮肤SSS效果(附完整节点图)

本文详细介绍了如何利用Unity ShaderGraph零代码实现皮肤次表面散射(SSS)效果,包括背光透射(BTDF)和表面散射(BSSRDF)的核心原理与节点构建方法。通过可视化工具,技术美术师和Shader初学者可以直观理解光线在皮肤组织中的散射行为,快速创建真实的皮肤材质效果,适用于游戏角色渲染等场景。

weixin_30838873的博客 592

自定义css属性实现渐变边框动画

自定义cs属性实现渐变边框动画

lemon的博客 1875

P1060 [NOIP 2006 普及组] 开心的金明(Python题解)

P1060 [NOIP 2006 普及组] 开心的金明(Python题解)

2301_79496274的博客 276

手把手教你学Simulink--基于Simulink的开关磁阻电机电流斩波控制仿真建模

特点:定子和转子均由普通硅钢片叠压而成,没有永磁体或绕组在转子上。工作原理:利用转子旋转时不同位置的磁阻变化产生转矩。控制挑战:由于SRM的高度非线性和磁饱和效应,需要复杂的控制算法来优化性能。利用Simscape Electrical中的模块构建SRM的物理模型,配置参数如电阻、电感等。matlab深色版本% 添加SRM电机模块根据实际需求调整电机参数。通过上述步骤,我们简要介绍了如何基于Simulink进行开关磁阻电机的电流斩波控制仿真建模。

MHD0815的博客 306

【题解】【洛谷P1060】【动态规划】—— [NOIP2006 普及组] 开心的金明

dpdp。

Pantheraonca的博客 977

DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)

【代码】DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)

baidu_34971492的博客 970

OSCP-Challenge 2 - Relia

使用andrea:PasswordPassword_6登录远程桌面,在c盘根目录下发现一个计划任务的ps,文件,修改执行的exe位木马,获取到milana用户的反弹shell。,发现开放了一个8000端口,但是我们外部是访问不到的,它对应的页面是/var/www/internal/,这个目录下的文件我们是可以访问的,把这个文件打个包放到本地分析下。其中数据的可以直接连接mssql,但是端口是49965,不过在数据库中没发现什么可用的信息,但是可以修改密码直接进后台,这个可以先放放。

羽的博客 7772

P1060 [NOIP2006 普及组] 开心的金明(动归)

P1060 [NOIP2006 普及组] 开心的金明(动归)

Sonaldo的博客 1018

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

洛谷P1060 [NOIP 2006 普及组] 开心的金明

洛谷,C++,菜菜奋斗日记

2402_88149600的博客 271

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

P1060 [NOIP2006 普及组] 开心的金明(dfs解法)

但是这道题确实很能体现dfs一条路走到黑再回头的思路。尝试用dfs做01背包模板题。

2403_86822944的博客 269

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【NOIP2006 普及组 P1060】开心的金明

设第j jj件物品的价格为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,j 1,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[jk]v[j 1]×w[j 1]+v[j 2]×w[j 2]+…f[i][j]:从前面i个物品中选择若干个,最多用j元,

Chow_Ssehc的博客 636

洛谷 P1060 [NOIP2006 普及组] 开心的金明

金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过。下面来到我们的正题: 首先判断是否为背包问题,可见其背包就是money的总数,质量就是重要度*money。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的。个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值。元)的前提下,使每件物品的价格与重要度的乘积的总和最大。的物品的基本数据,每行有。

AI天才研究院 2万+

【洛谷题解】P1060 [NOIP2006 普及组] 开心的金明

这道题已经涉及到了算法,但还不算太难,只要对01背包有所了解,知道基础代码,就可以十分轻松地把这道题解出来。

一个学生的博客 1038
上一篇: P1115 最大子段和
下一篇: P1944 最长括号匹配
AllenAC
博客等级 码龄3年 2113粉丝 239原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值