首页 > 试题广场 >

牛牛选物

[编程题]牛牛选物
  • 热度指数:271 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
现在有n个物品,每个物品有一个体积v[i]和重量g[i],选择其中总体积恰好为V的若干个物品,想使这若干个物品的总重量最大,求最大总重量为多少。(如果不存在合法方案,返回-1)

示例1

输入

[1,2,3],[2,3,4],3

输出

5

说明

可以选择前两个物品,总体积为1+2=3恰好等于V,总重量为2+3=5,为符合题意选法中的最大重量 
示例2

输入

[1,3],[100,300],2

输出

-1

说明

只有一个体积为1的和一个体积为3的物品,无法选出总体积为2的若干物品,所以返回-1 

备注:
给定三个参数,第一个参数为数组v,第二个参数为数组g,第三个参数为体积V,求最大总重量为多少。
(所给字符串与返回字符串都不带引号)
头像 第一次当人
发表于 2020-12-11 23:57:06
青铜B 王者A B站讲解视频https://www.bilibili.com/video/BV1W5411G7cX?p=2 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef double 展开全文
头像 pfco
发表于 2020-12-11 23:15:12
A. 牛牛选物 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回总体积为V若干物品的最大总重量,如果g存在选择若干物品总体积为V的情况 展开全文
头像 Ruoji55555
发表于 2020-12-11 22:23:43
A: 对dfs和回溯的应用场景还是不太了解, 抬手一个回溯...wa了好几发 然后改成dfs过了看了讲解, dfs可能会栈溢出,可以用状态压缩来避免DFS写法: long maxG =-1; int VV=0; int[] gg = null; public int 展开全文
头像 Rinoa
发表于 2020-12-11 22:35:53
A 牛牛选物解题思路:n<=20,2^20属于1e6级别大小,所以用01表示选不选物品然后枚举找到符合条件的最大值即可。 int Maximumweight(vector<int>& v, vector<int>& g, int V) { 展开全文

问题信息

难度:
1条回答 1469浏览

热门推荐

通过挑战的用户

查看代码
牛牛选物