首页 > wyh的物品
头像 19_hanhan
发表于 2020-06-06 10:29:59
题目 题目描述: wyh学长现在手里有n个物品,这n个物品的重量和价值都告诉你,然后现在让你从中选取k个。 问你在所有可能选取的方案中,最大的单位价值为多少(单位价值为选取的k个物品的总价值和总重量的比值) 输入描述: 输入第一行一个整数T(1<=T<=10) 接下来 展开全文
头像 HGDB
发表于 2020-06-05 17:33:07
思路 这题考虑二分答案,既选k个物品总价值与总重量的比值 价值 等式两边同时乘可以得到 我们要所选的k个总单位价值最大,即要选的数量中 最大,所以二分的check函数对按降序排列,算出前k个之和是否大于0,大于0就说明当前单位价值可以到达,反之不能 代码 #pragma GCC target( 展开全文
头像 Severus.
发表于 2020-06-05 18:18:07
题目描述 wyh学长现在手里有n个物品,这n个物品的重量和价值都告诉你,然后现在让你从中选取k个,问你在所有可能选取的方案中,最大的单位价值为多少(单位价值为选取的k个物品的总价值和总重量的比值) 输入描述: 输入第一行一个整数T(1<=T<=10)接下来有T组测试数据,对于每组测 展开全文
头像 11D_Beyonder
发表于 2020-05-29 20:53:21
NC15446 的物品 [](https://ac.nowcoder.com/acm/problem/15446) 题目描述 学长现在手里有 个物品,这 个物品的重量和价值都告诉你,然后现在让你从中选取 个,问你在所有可能选取的方案中,最大的单位价值为多少(单位价值为选取的 个物 展开全文
头像 昵称很长很长真是太好了
发表于 2020-06-02 20:34:43
题解:这道题之前用贪心写,没写出来,一直留在现在,今天回看了一下01分数规划才知道原来那个想法是错误的,简单来想一下,大概是因为物体的两个值是不可以约分的,这样的话就会导致每个物品值得权重不一样就好比说原来是100/1,如果加上100000/99999,这样的话,之前一百所占得权重就微不足道了,还不 展开全文
头像 sunrise__sunrise
发表于 2020-05-30 17:23:51
01分数规划 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 wyh学长现在手里有n个物品,这n个物品的重量和价值都告诉你,然后现在让你从中选取k个,问你在所有 展开全文
头像 修补骑士
发表于 2025-04-15 19:17:44
首先:最大Vz/Wz不是说按照单个Vz/Wz排序,这可是除法口牙!用样例看看就明白了 修补骑士一开始感觉这是个01背包,但是这里使用太复杂了,可能会吃MLE或者TLE,后面自我寻思了一下发现了: 能达到的单位价值。所以说是bz/az >= m,找到这个最大的m(保留两位小数) 二分关系在于:无 展开全文
头像 cheeserish
发表于 2020-05-23 17:54:27
和另一道一样,01分数规划+二分。 #include<bits/stdc++.h> using namespace std; #define ll long long const double esp=0.00000001; int main() { int t,n; c 展开全文
头像 simonhan
发表于 2022-04-29 01:03:23
01分数规划的浮点数二分 经典01分数规划,当前物体的价值和重量是v和w。选取k个物品,使得总体的单位价值最大 二分可能的最终单位价值做check,check选取的最大值符合一个等式: sum(vi)sum(wi)>=mid\frac{sum(v_i)}{sum(w_i)} >= mi 展开全文
头像 昨晚梦见发财了
发表于 2020-06-05 10:35:27
标准的01分数规划首先二分查找符合条件最大的x,如果符合条件就选取右区间,不符合就查找左区间。当r-l相差为0.0000001时我们视为r=l,此时可以返回l了。最主要的是如何去写check函数首先我们将v[i]-s[i]x存到数组中,因为我们之前假设了v[i]/s[i]=x此时x是最大值。所以我们 展开全文