背包
kalilili
双眼闭三年。
展开
-
UVA 12563 Jin Ge Jin Qu hao(01背包变形:两个背包内容)
题意: KTV里面有n首歌曲你可以选择,每首歌曲的时长都给出了. 对于每首歌曲,你最多只能唱1遍. 现在给你一个时间限制t (ttime必须) ? 最终输出num+1 和 time+678 即可. 注意: 你需要优先让歌曲数目最大的情况下,再去选择总时长最长的.//0 KB 39 ms#include#include#include#in原创 2015-02-17 22:24:15 · 975 阅读 · 0 评论 -
UVA10817 Headmaster's Headache 状态压缩的01背包
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1758题目意思:某校有n个教师和m个求职者。已知每人的工资和能教授的课程集合,要求支付最少的工资使得每门课都至少有两名教师教学。在职教师必须招聘思路:原创 2015-03-26 09:52:11 · 802 阅读 · 0 评论 -
POJ 3260 The Fewest Coins(混合背包+鸽巢原理)
题意:有某些硬币,已知某人分别有这些硬币数ci,卖家有这些硬币无限数量,已知待买的商品价格,求这个人所花的硬币数加上找零的硬币数的和最少是多少思路:不难看出一个多重背包和完全背包即可主要难点在于那个人应该出多少钱?出钱的上界是什么,一开始我以为只要出了超过最大面额的钱就可以了,结果wa后意识到错了但也没想到如何确定上界的方法。看了别人的博客学到:出钱的上界不会超过最大面额(mmax)的原创 2015-03-26 11:03:56 · 1211 阅读 · 0 评论 -
POJ 2063 Investment(完全背包--容量变化)
题目大意:给你一笔金额,你要将这比金额去投资,现在有t种股票,每种股票都有一个价值和年收益,问你如何投资在n年后的最大收益思路:由于获益后的钱加上本金可以再来投资,所以背包容量变化,这点还是不难的,主要本题给了一个信息:股票的价值都是1000的倍数,所以后面可以空间优化,对每个价值除以1000对背包容量优化#include#include#include#includeusing原创 2015-03-26 11:09:39 · 1122 阅读 · 0 评论 -
HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包 水)
Input输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1分别表示经费的金额和大米的种类,然后是m行数据,每行包含3个数p,h和c(1Output对于每组测试数据,请输出能够购买大米的最多重量,你可以假设经费买不光所有的大米,并且经费你可以不用完。每个实例的输出占一行。Sample Input 18 22原创 2015-03-19 22:55:10 · 944 阅读 · 0 评论 -
POJ 1745 Divisibility(0,1背包)(好题)
题意: 输入n个有序数字,数字前可加上+或-,求是否存在这样的和,使得该和能够整除数字k每个数字前只有取正或负两种情况,所以符合0,1背包,而且背包的重量是除k的余数(均是正数)//172 KB 297 ms C++ 785 B#include#include#include#includeusing namespace std;int num[10010];bool dp[原创 2015-03-10 19:04:03 · 810 阅读 · 0 评论 -
HDU 5313 Bipartite Graph(二分图染色+01背包水过)
Problem DescriptionSoda has a bipartite graph with n vertices and m undirected edges. Now he wants to make the graph become a complete bipartite graph with most edges by adding some extra edge原创 2015-07-26 11:30:05 · 1117 阅读 · 0 评论 -
Codeforces Round #327 (Div. 1) D. Top Secret Task(DP)
大致题意:题意很简单,就是n个数,求最多两两交换S次,使前K个数的和最小n 思路:显然s >= n * n / 2 时总能把前K小的数交换到前K个位置而且交换不交叉时是最优的,比如Ak 与 A(k+x)交换, 接下来Ak-1只能A(k+y)(y > x) 交换,总是最优的这样每次交换的代价是j - i,再增加一维可行位置保证不交叉,这样就是S容量的背包问题//p原创 2015-10-30 11:05:46 · 676 阅读 · 0 评论