hdu 3466(排序+背包)Proud Merchants

hdu3466 Proud Merchants 需要排序的01背包 Proud Merchants Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 5847Accepted Submission(s): 2453 Problem Description Recently, 阅读详情

题意:

给n个物品,每个物品有三个属性,价格、你至少拥有钱数才能购买该物品的值和购买后能获得的价值。然后你有m块钱,问最多能获得多少价值。

思路

看起来就是一个01背包加了一个购买钱数的限制。
就用01肯定不行。
用极限来看裸的01背包的限制就是它的的价格,相当于限制值为0,现在给了一个新限制,那么我对这个限制值进行一个从小到大的排序,然后01背包做过去就行了。这样前面就不会影响后面的状态了。
很好的一道题,无后效性!!!!!!!

复杂度:

O(n*m)

参考code:

/*
 #pragma warning (disable: 4786)
 #pragma comment (linker, "/STACK:0x800000")
 */
#include <cassert>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <iterator>
#include <utility>
using namespace std;

template< class T > T _abs(T n) { return (n < 0 ? -n : n); }
template< class T > T _max(T a, T b) { return (!(a < b) ? a : b); }
template< class T > T _min(T a, T b) { return (a < b ? a : b); }
template< class T > T sq(T x) { return x * x; }
template< class T > T gcd(T a, T b) { return (b != 0 ? gcd<T>(b, a%b) : a); }
template< class T > T lcm(T a, T b) { return (a / gcd<T>(a, b) * b); }
template< class T > bool inside(T a, T b, T c) { return a<=b && b<=c; }


#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define F(i, n) for(int (i)=0;(i)<(n);++(i))
#define rep(i, s, t) for(int (i)=(s);(i)<=(t);++(i))
#define urep(i, s, t) for(int (i)=(s);(i)>=(t);--(i))
#define repok(i, s, t, o) for(int (i)=(s);(i)<=(t) && (o);++(i))            
#define MEM0(addr) memset((addr), 0, sizeof((addr)))
#define MP(x, y) make_pair(x, y)
#define REV(s, e) reverse(s, e)
#define SET(p) memset(pair, -1, sizeof(p))
#define CLR(p) memset(p, 0, sizeof(p))
#define MEM(p, v) memset(p, v, sizeof(p))
#define CPY(d, s) memcpy(d, s, sizeof(s))
#define READ(f) freopen(f, "r", stdin)
#define WRITE(f) freopen(f, "w", stdout)
#define SZ(c) (int)c.size()
#define PB(x) push_back(x)
#define ff first
#define ss second
#define ll long long
#define ld long double
#define pii pair< int, int >
#define psi pair< string, int >
#define ls u << 1
#define rs u << 1 | 1
#define lson l, mid, u << 1
#define rson mid, r, u << 1 | 1

const int maxn = 1e6+5;
const ll INF = 0x3f3f3f3f3f3fLL;

struct node{
    int p,q,v;
}x[505];
int cmp(node a,node b){
    return a.q - a.p < b.q - b.p;
}
int dp[5005];
int main(){
    //READ("in.txt");
    int m,n;
    while(scanf("%d%d",&n,&m)!=EOF){
        rep(i,1,n) scanf("%d%d%d",&x[i].p,&x[i].q,&x[i].v);
        sort(x+1,x+1+n,cmp);
        MEM0(dp);
        rep(i,1,n){
            urep(j,m,x[i].q){
                dp[j] = max(dp[j],dp[j-x[i].p]+x[i].v);
            }
        }
        printf("%d\n", dp[m]);
    }
}
AutoSAR实战:手把手教你配置PNC(Partial Network Cluster)实现精准休眠与唤醒 本文详细介绍了如何在AutoSAR中配置PNC(Partial Network Cluster)实现精准休眠与唤醒,通过DaVinci Configurator工具逐步指导,结合ComM模块的协同调试,优化车载电子系统的能耗管理。文章包含实战步骤、常见错误排查及功耗优化数据,适合汽车电子开发工程师参考。 阅读详情

相关推荐

SAP生产版本导入避坑大全:从‘黄灯’到‘绿灯’,详解CM_FV_MKAL_CONSISTENCY_CHECK检查函数

本文深入解析SAP生产版本导入过程中的常见问题,特别是通过`CM_FV_MKAL_CONSISTENCY_CHECK`检查函数从‘黄灯’异常到‘绿灯’正常的修复方法。涵盖静态与动态校验机制、典型异常场景诊断及批量导入最佳实践,帮助SAP运维人员高效解决生产版本管理难题。

weixin_30568591的博客 387

HDU--3466(0-1背包+贪心/后效性)

题意是: 给你一些钱 m ,然后在这个国家买东西, 共有 n 件物品,每件物品有 价格 P 价值 V 还有一个很特别的属性 Q,Q 指 你如过想买这件物品 你的手中至少有这钱Q。 虽然你只要花费钱P ,但你的手中至少有钱Q,如果不足Q ,不能买。问给你钱M ,列出N件物品,最多能获得多少价值的东西。。。。 这道题如果没有Q的限制的话就是一道01背包的水题,但是加上了...

dcs2357181的博客 239

Yolov8轻量级网络:Ghostnet、G_ghost、Ghostnetv2家族大作战(一):华为Ghostnet,超越谷歌MobileNet | CVPR2020

Yolov8引入轻量级网络Ghostnet、G_ghost、Ghostnetv2等,减少最新的深度神经网络的计算成本,引入高效的神经网络结构。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2566

HDU - 3466(01背包理解)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意:给你一些钱 m ,然后在这个国家买东西, 共有 n 件物品,每件物品价格P价值V还有一个很特别的属性Q,Q指你如过想买这件物品,你的手中至少有Q钱。虽然你只要花费钱P ,但你的手中至少有钱Q,如果不足Q ,不能买。问给你钱M ,列出N件物品,最多能获得多少价值的东西。 思路:如果没...

sugarbliss 753

全景相机APP

以下是一款**全景相机APP**的完整源码,支持全景照片拍摄(多帧拼接)、全景预览、鱼眼矫正、图片保存/分享、360°全景查看等核心功能,基于Android原生Camera2 API(替代过时的Camera API) + OpenCV(图像拼接) + GLSurfaceView(全景预览)实现,适配Android 8.0+设备,可直接编译运行。runOnUiThread(() -> tvFrameCount.setText("已拍摄:" + frameCount + "帧"));// X轴旋转(上下)

寒寒豆豆软件公司的博客 179

YOLO26改进105:全网首发--使用BiFPN改进特征金字塔网络

YOLOv6 v3.0在目标检测领域实现重大突破,通过改进网络架构和训练方案显著提升性能。该版本在COCO数据集上展现出优越表现:YOLOv6-N达到37.5% AP/1187 FPS,YOLOv6-S实现45.0% AP/484 FPS,均超越同类检测器。大模型YOLOv6-M/L分别达到50.0%/52.8% AP,L6版本更创下实时检测新纪录。关键技术包括RepVGGBlock、BiFusion等新型模块,通过多分支融合和高效重参数化设计提升性能。研究团队已验证各改进模块有效性,代码已开源。

AIcurator的博客 95

HDU3466——Proud Merchants

这是01背包问题(我觉得题目挺好的),但是问题在于在动态规划前一定要先排序,排序规则是按照q-p由小到大的顺序排列,至于为什么这样排列,有几个博主写了: HDU 3466 Proud Merchants DP 分享排序方式的证明 HDU3466(背包先后顺序) 先上代码: struct Ce { int p,q,v; }ce[555]; int cmp(Ce

emmaczw的博客 552

2025资源从哪里来!

研究网络通信中的安全问题,如VLAN划分、路由协议(静态、动态如OSPF、BGP)、NAT转换、AAA认证、访问控制列表(ACL)等。‌Wi-Fi安全设置‌、‌密码破解原理‌(仅用于合法测试或教育目的)、‌常见Web安全问题‌如SQL注入、XSS跨站脚本攻击等的防范措施。在这个网站你可以找到你对应的专业-对应的路线-对应的资源-对应的百度网盘里面全是免费的资源------------------惊喜不?‌防火墙配置与策略‌、‌入侵检测与防御系统(IDS/IPS)‌、‌端口扫描与漏洞扫描技术‌等。

qq_56248592的博客 1902

hdu 3466(01背包)

http://acm.hdu.edu.cn/showproblem.php?pid=3466 分析:iSea要到骄傲的商人那里买东西,虽然每个东西有自己的价格和价值(经典01背包类型),但是与hdu 2546一题一样有限制条件:当你手里的钱少于Q时,你不能卖这件物品(可能是因为商人太骄傲了吧~~);            这道题需要先按 p-q 进行排序,使得不影响之后的DP。

naturelan的专栏 926

编译zlib库给IOS平台用

在弹出的下面对话框中选择Unix Makefiles ,然后点击(Done)完成。使用 lipo与otool查看库类型为arm64,现在可在ios平台使用该库了。zlib自带CMakeLists.txt 所以用CMake-GUI来生成。修改为与系统当前安装的cmake版本 (如:3.22.1)选择zlib源码目录及输出目录,输入下图的CMAKE参数。点击Configure,在弹出的对话框中选择Yes。cmake --install . 进行安装。cmake --build . 进行编译。

993

芒果YOLOv12改进13:独家原创改进最新 CFNet 核心结构|即插即用 | 首发改进显著提升检测性能,小目标检测涨点必备

芒果YOLOv12改进13:独家原创改进最新 CFNet 核心结构|即插即用 | 首发改进显著提升检测性能,小目标检测涨点必备

包括YOLOv5、YOLOv7、YOLOv8等模型改进 286

hdu3466 Proud Merchants

hdu3466 Proud Merchants

李典金 358

Qwen2.5-VL多模态微调超参数深度解析(上):训练流程与优化策略的量化机制分析

上篇文章通过系统化的对比实验,回答了多模态微调中的三个基础问题:“选什么方法”(LoRA/Full/Freeze/OFT对比)、“用什么配置”(60+组超参数组合)、“达到什么效果”(ROUGE-L/BLEU-4指标)。这些结果为后续工作奠定了实验基线,但也留下了更深层的疑问:为何相同方法在不同数据集上表现迥异?为何某些超参数的微小调整会引发性能剧变?如何在未见过的任务上快速找到最优配置?本文是对前文实验数据的二次挖掘与机理解析。我们将关注点从"做了什么实验"转移到"实验揭示了什么规律",实验视角从"结果对

羊城迷鹿的博客 1005

HDU 3466 Proud Merchants(01背包/按limit-price从小到大排序)

题目链接: HDU 3466 Proud Merchants 题意: 有nn个商品和预算mm元。每个商品有个价格priceprice,购买限制limitlimit和价值valval,必须在手中剩余的金额大于limitlimit时才能购买这件商品.(limit>price)(limit>price)问在预算条件下最多能购买的商品价值是多少? 分析: 典型的01背包。一开始是按照limitli

ramay7 642

IEM模型,地表粗糙度模拟

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

hdu3466——Proud Merchants——————【01背包排序】

/**    解题思路:明显的01背包,但是这个有一个金额限制,所以不仅仅是01背包,因为转移方程应为    for(int k=0;k    for(int i=V;i>=items[k].q ;i--){         dp[i]=max(dp[i],dp[i-items[k].p]+val);     } 要保证无后效性,需要让dp[i-items[k].p]比dp[i

被虐的goshawk 777

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

HDU3466 Proud Merchants 排序01背包

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 7030    Accepted Submission(s): 2929 Problem Description Recently,

qq_37410469的博客 208

pscad IEEE标准系统搭建说明

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

[01背包][排序]Proud Merchants HDU3466

Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the people in this country are still very proud even if their nation hasn’t been so wealthy any more. The merchants wer

Cloth的博客 265

HDU 3466——Proud Merchants【01背包 + 排序消除后效性】

题目传送门 与顺序有关的01背包,先按q-p排序再来处理,难想容易敲。 Problem Description Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the pe...

NIRVANA REBIRTH 432

Proud Merchants HDU - 3466 (01背包 排序)

Proud Merchants 题目连接:HDU - 3466 题意:n个物品, 一开始有m单位钞票,每个物品有三个属性:p, q, v;p是物品价格, q是买下该物品手中至少要有的钞票,v是每个物品的价值;求能买到的物品最大价值和是多少;若现有A,B两个物品,属性分别为p1, q1, v1;   p2, q2, v2;   先买A物品时手中钞票至少要有p1+q2,先买B物品手中至少要有p2+q1...

Sirius_han的博客 294

HDU 3466 Proud Merchants 需要排序的背包

和普通的01背包不一样,多了一个限制,只有在剩余钱大于等于q的时候才能选。需要确定先后顺序,假设有A, B2个物品并且他们都会选择,如果先选A再选B那么选第二个的时候花费至少是q1+p2,如果先选B再选A,选第二个的时候花费至少是q2+p1,所以应该排个序,满足q1+p2 < q2+p1,移项得到q1-p1 < q2-p2。 #include #include #include

嗯。 444

hdu 3466 Proud Merchants <背包+sort排序>

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 3616    Accepted Submission(s): 1511 Problem Description Recently, i

dxx_111的博客 874

HDU 3466 Proud Merchants (01背包+排序)

题面 Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the people in this country are still very proud even if the...

Yi_Qing_Z的博客 307

HDU 3466 Proud Merchants(排序的01背包)@

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 5525    Accepted Submission(s): 2327 Problem Description Recently,

MR CODER 633

hdu3466 Proud Merchants 01背包 排序 dp

链接:点我 题意:每个物品有p、q、v,三个属性,每个物品的话费为p,但是前提是必须有q,v则是得到的价值。 咋一看直接01就行,但是需要排序,因为如果一个物品是5 9,一个物品是5 6,对第一个进行背包的时候只有dp[9],dp[10],…,dp[m],再对第二个进行背包的时候,如果是普通的,应该会借用前面的dp[8],dp[7]之类的,但是现在这些值都是0,所以会导致结果出错。于是要想到只

671coder的专栏 3110

hdu3466 Proud Merchants (01背包+排序方式)

Proud Merchants 链接:hdu3466 Problem Description Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the people in th...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 178

HDU3466 Proud Merchants 01背包 通过排序去除后效性

                                           Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 8234    Accepted Submission(s): 34...

点滴 383
上一篇: hdu 3449(依赖背包) Consumer
下一篇: hdu 5288 (预处理+暴力) OO’s Sequence
Notdeep__acm
博客等级 码龄12年 20粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值