牛客 牛牛选物(01背包)
文章目录
- 1. 题目
- 2. 解题
1. 题目
链接:https://ac.nowcoder.com/acm/contest/9887/A
来源:牛客网
牛牛有现在有n个物品,每个物品有一个体积v[i]和重量g[i],他想选择其中总体积恰好为V的若干个物品,想使这若干个物品的总重量最大,他想知道最大总重量为多少。(如果不存在合法方案,返回-1)
2. 解题
- 数据范围 V 很大,开DP数组要超时,采用哈希表
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可* 返回总体积为V若干物品的最大总重量,如果g存在选择若干物品总体积为V的情况,返回-1* @param v int整型vector * @param g int整型vector * @param V int整型 * @return int整型*/int Maximumweight(vector<int>& v, vector<int>& g, int V) {// write code hereint n = v.size();unordered_map<int, int> dp;// V Gdp[0] = 0;dp[v[0]] = g[0];for(int i = 1; i < n; i++) {unordered_map<int, int> temp(dp.begin(), dp.end());for(auto it = dp.begin(); it != dp.end(); ++it){int vi = it->first;int gi = it->second;if(vi + v[i] <= V){if(temp.find(vi+v[i]) == temp.end())temp[vi+v[i]] = gi + g[i];elsetemp[vi+v[i]] = max(temp[vi+v[i]], gi + g[i]);}}dp.swap(temp);}if(dp.find(V) == dp.end()) return -1;return dp[V];}
};
585ms C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
牛客 牛牛选物(01背包)相关推荐
- 牛客 牛牛浇树(差分)
文章目录 1. 题目 2. 解题 1. 题目 链接:https://ac.nowcoder.com/acm/contest/10323/A 来源:牛客网 牛牛现在在花园养了n棵树,按顺序从第1棵到第n ...
- 牛客网-xinjun与阴阳师(背包DP)
链接:https://ac.nowcoder.com/acm/problem/14602 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...
- 牛客 牛牛的独特子序列(双指针/二分查找)
文章目录 1. 题目 2. 解题 2.1 双指针 2.2 二分查找 1. 题目 链接:https://ac.nowcoder.com/acm/contest/9752/B 来源:牛客网 牛牛现在有一个 ...
- 牛客 牛牛爱喝酒(模拟)
文章目录 1. 题目 2. 解题 1. 题目 链接:https://ac.nowcoder.com/acm/contest/9752/A 来源:牛客网 牛牛是一个酒鬼,非常爱喝酒, 一瓶酒m元钱, 两 ...
- 牛客 牛牛做除法II
文章目录 1. 题目 2. 解题 1. 题目 链接:https://ac.nowcoder.com/acm/contest/9715/A 来源:牛客网 牛牛想知道在[0,n]范围中,选取一个最大的数x ...
- 牛客 牛牛与LCM(LCM)
牛牛与LCM 链接:https://ac.nowcoder.com/acm/problem/21674 来源:牛客网 题目描述 牛牛最近在学习初等数论,他的数学老师给他出了一道题,他觉得太简单了, 懒 ...
- 2021 牛客网笔试总结 01
文章目录 牛客网笔试 关于TCP/IP网络接口层的描述是错误的 TCP与UDP说法错误的 async await描述错误的 不属于Location对象的属性 BFC js错误类型 flex布局 fle ...
- 牛客 F - 爬塔 (分组背包)
中国计量大学现代科技学院第四届"中竞杯"程序设计校赛(同步赛)F - 爬塔 链接:https://ac.nowcoder.com/acm/contest/9680/F 题目描述 高 ...
- 牛客 - 牛牛的滑动窗口(单调栈+思维+差分)
题目链接:点击查看 题目分析:给出 nnn 个数,定义滑动窗口的贡献是其中最大值与最小值的乘积,现在问对于长度分别为 [1,n][1,n][1,n] 的滑动窗口,贡献之和分别是多少 题目分析:考虑暴力 ...
最新文章
- 我学UML建模系列之核心元素 -------- 参与者
- linuxliveu盘怎么用_U盘数据如何恢复?U盘打不开怎么办?
- 一致性Hash(Consistent Hashing)原理剖析
- HTML5 audio 如何实现播放多个MP3音频
- Linux 启动失败 磁盘阵列,组建RAID5重启系统,出现md127的解决办法
- Coursera自动驾驶课程第8讲:Basics of 3D Computer Vision
- 刚刚,阿里宣布开源Flutter应用框架Fish Redux!
- Memcache入门知识
- 学单片机的动力是什么,学单片机来做什么,需要多长时间把它学会
- 【Python实例第11讲】文本的核外分类
- iOS开发总结——项目目录结构
- Java容器Set接口
- 数控机床属于计算机应用领域,数控技术都应用到这些领域了!你还不知道!
- lammps教程:EAM势参数设置详解
- 2013年全国统一题库考试-小型汽车驾照模拟考试C1,C2,C3,C4
- 暑假D16 T3 密道(数位DP? 打表找规律)
- 【唐诗分析器】实现思想代码+具体测试
- 微信WeChat多开
- XLORE2:大规模跨语言知识图谱构建与应用
- MAGIC文件格式解析