#include #include #include #include #include using namespace std; struct HY { int u,v; }hy[10005]; bool cmp(HY a,HY b) { if(a.v == b.v) return a.u>b.u... ...
分类:
其他好文 时间:
2018-10-22 22:15:22
阅读次数:
244
[TOC] 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 虽然我发这个随笔的时候估计已经比完了,不过还是把链接放上来好了。 "一个比赛" 竞赛题目 我做出来的 C.水题的ZZH 题目描述 ZZH是北化acm界新生代的大佬,每天会和无数来自全球各地的大佬进 ...
分类:
其他好文 时间:
2018-10-21 13:07:40
阅读次数:
154
问题描述:已知n种物品和一个可容纳c重量的背包,物品 i 的重量为wi ,产生的效益为pi 。装包时物品可以拆,即只装物品的一部分或者全部或者不装。最大的重量不能超过c。 求整体效益最大。 算法思想:首先先求单位重量效益最高的(即 pi 除 wi 最大的),如果此时的 c 大于 wi 就全部装入(s ...
分类:
其他好文 时间:
2018-10-19 00:21:52
阅读次数:
135
这是一道比较综合的动态规划问题。 首先,根据题目中的从N个人中选出M个人,并且要使得某个目标函数最优,可以想到是背包问题,且因为要取出M个人,人数也应该作为背包体积的一个维度。 其次,要求输出路径,因此不能进行滚动数组优化(优化后无法记录状态转移途径)。 再次观察要求最优的函数,是一个相减取绝对值的 ...
分类:
其他好文 时间:
2018-10-18 16:52:27
阅读次数:
117
0 1背包问题的本质是一个序列中的每个物品都有 选和不选 两种情况 如:从一堆物品中选出 若干个 ,满足某些性质的问题 初始化需要注意的是开始时dp数组需要设置成为一个 相对于正解 来说不可能的解,可能是0,也可能是负无穷、正无穷,具体情况具体分析。 阶段:处理完了前 i 件物品 附加状态:当前背包 ...
分类:
其他好文 时间:
2018-10-17 14:37:34
阅读次数:
123
优化算法系列之模拟退火算法(1)——0-1背包问题 1问题描述 有一个窃贼在偷窃一家商店时发现有N件商品:第i件物品价值vi元,重wi磅,其中vi、wi都是整数。他希望带走的东西越值钱越好,但他的背包小,最多只能装下W磅的东西(W为整数)。如果每件物品或被带走或被留下,小偷应该带走哪几件东西? 2解 ...
分类:
编程语言 时间:
2018-10-14 13:48:43
阅读次数:
252
分组背包其实也不难,弄清楚前面的这里就十分好解决了 有容积为V的背包,有n件物品,每种物品属于的组别不同,t为最大的组数,每组中的物品相互冲突,所以只能选其中一件 接下来是每件物品的重量w[i],价值v[i],以及组号x,求最大的价值 因为每组物品只能选一件,我们很容易把这转化为01背包 显然dp方 ...
分类:
其他好文 时间:
2018-10-11 15:10:16
阅读次数:
115
其实混合背包就更简单了 有n种物品,背包的容量为V,接下来给出每个物品的重量w[i],价值v[i],数量c[i],如果c[i]为0,表示这种物品有无数件,求最大的价值 显然dp方程分为两种 如果是完全背包则是 dp[j]=max(dp[j],dp[j-w[i]]+v[i]) (j=w[i];j<=V ...
分类:
其他好文 时间:
2018-10-11 12:20:21
阅读次数:
182