1. 题目

输入示例

1000 5
800 2 0
400 5 1
300 5 1
400 3 0
500 2 0

输出示例

2200

2. 分析

看了一遍题目,看了两遍题目,…,看了n遍题目。没思路!!!
看其他人的代码似乎,这似乎是有依赖的背包问题,经典题目叫做“金明的预算方案”。

  • 背包九讲——全篇详细理解与代码实现
  • 【NOIP2006】金明的预算方案 这篇我感觉说明的很清楚了,我的代码就是按照这个的思路,稍微改了一点点。

3.代码

#include <bits/stdc++.h>
#define max(x,y) (x>y)?x:yusing namespace std;int v[61][3];    //存放 价格
int w[61][3];    //存放 (价格*重要度)
int dp[61][32000];int main(){int N, m;cin >> N >> m;int a, b, c;for(int i=1; i<=m; i++){cin >> a >> b >> c;if(c){    // 如果是附件if(w[c][1]){    //已有第一个附件,作为第二个附件v[c][2] = a;w[c][2] = a*b;}else{           //没有第一个附件,作为第一个附件v[c][1] = a;w[c][1] = a*b;}}else{    //主件v[i][0] = a;w[i][0] = a*b;}}// dp动态规划for(int i=1; i<=m; i++){for(int j=1; j<=N; j++){dp[i][j] = dp[i-1][j];    // 1、什么都不买if(v[i][0] <= j){    // 2、只买主件dp[i][j] = max(dp[i][j], dp[i-1][j-v[i][0]]+w[i][0]);}if(v[i][0] + v[i][1] <= j){    // 3、买主件和附件1dp[i][j] = max(dp[i][j], dp[i-1][j-v[i][0]-v[i][1]]+w[i][0]+w[i][1]);}if(v[i][0] + v[i][2] <= j){    //4.买主件和附件2dp[i][j] = max(dp[i][j], dp[i-1][j-v[i][0]-v[i][2]]+w[i][0]+w[i][2]);}if(v[i][0] + v[i][1] + v[i][2] <= j){    //买主件和附件1和附件2dp[i][j] = max(dp[i][j], dp[i-1][j-v[i][0]-v[i][1]-v[i][2]]+w[i][0]+w[i][1]+w[i][2]);}}}cout << dp[m][N] << endl;return 0;
}

动态规划是真的学不会啊。。。(就算给我原题我都不一定能做出来!理直气壮.jpg

【华为机试】HJ16 购物单相关推荐

  1. 华为机试HJ16:购物单

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 王强今天很开心,公司发给N元的年终奖.王强决定把年终奖用于购物,他把想买的物品分为两 ...

  2. 华为机试JAVA 免单统计

    免单统计  题目描述  某商城举办了一个促销活动,如果某顾客是某一秒内早时刻下单的顾客(可能是多个人),则可以 获取免单.请你编程计算有多少顾客可以获取免单. 解答要求 时间限制:3000ms, 内存 ...

  3. 牛客在线编程-华为机试-中等

    牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...

  4. 华为机试108题(C 语言解答)

    Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...

  5. 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...

  6. JavsScript牛客网华为机试(11-20)题解

    牛客网华为机试题解JavaScript版本 华为机试第11-20题解答(js) 11.数字颠倒 12.字符串反转 13.句子逆序 14.字符串排序 15.求int型数据在内存中存储时1的个数 16.购 ...

  7. 华为机试题目:工单调用策略

    华为机试题目来源:华为优招机试(2021年7月7) - 代码先锋网 一.工单调用策略 当小区通信设备上报警时,系统会自动生成待处理的工单,华为工单调度系统需要根据不同的策略,调度外线工程师(FME)上 ...

  8. 华为机试(扑克牌大小3.3)

    华为机试(扑克牌大小3.3) 题目 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写J ...

  9. 华为机试 经验(血泪史啊)

    参加华为机试,第一道题竟然没有做完. 原题如下: 免单统计  题目描述  某商城举办了一个促销活动,如果某顾客是某一秒内第一个下单的顾客(可能是多个人),则可以 获取免单.请你编程计算有多少顾客可以获 ...

  10. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

最新文章

  1. python刷题笔记怎么改_python面试题刷题笔记1 - 10
  2. python拆堆和堆叠的操作_堆叠框架的Python / Tkinter退出按钮
  3. docker与VM虚拟机区别
  4. 计算机技术在工程的应用浅论,《计算机技术在计算机应用技术中的应用浅论》...
  5. 信息学奥赛一本通 2043:【例5.11】杨辉三角形
  6. Unix Tutorial Four
  7. [2019.1.2]BZOJ2115 [Wc2011] Xor
  8. Qml文件的两种加载方式
  9. Ubuntu 下 MySQL 数据自执行备份
  10. 入门选手都能了解的聚类算法之二(DBSCAN)
  11. 两场直播丨易鲸捷分布式数据库的并发控制 、PostgreSQL日常工作分享
  12. 前端实现动画的方法总结
  13. 计算机硬盘从桌面消失了,如何解决win10硬盘分区不见了_win10机械硬盘突然消失解决方法...
  14. 错题集:Censored!
  15. visio2016安装遇到的坑
  16. Gensim官方教程翻译(二)——语料库与向量空间(Corpora and Vector Spaces)
  17. 单调递增最长子序列 拦截导弹(nyoj 17 nyoj 79)
  18. 不思议迷宫量子计算机,不思议迷宫男巫刷法及男巫的猫形态详解
  19. 面试中可以用到的高级技巧
  20. 如何搭建一个拥有个人域名又带点Geek味的独立博客

热门文章

  1. Win7电脑无法进入睡眠模式?
  2. 小程序商城制作一个需要多少钱?
  3. 【博学谷学习记录】超强总结,用心分享 | shell基础
  4. 【每天读一点英文】gnuhpc:The World As I See It(节选)
  5. flowable 排他网关
  6. 计算机图形学:机器人的画法与填充
  7. 上海波涛装饰集团有限公司乐山分公司
  8. linux下ssh、scp无密钥登陆方法
  9. !!. 与 ?. 的区别
  10. CV:阿里在CV数据增强领域带来SOTA新范式(已被NeurIPS2022接收)—基于离散化对抗训练的鲁棒视觉新基准!