动态规划
魂骸
不同阶段看到不同的风景,只有不断努力才会知道自己有多菜。
菜鸡希望大佬多指点0.0 热爱交友欢迎加我QQ983167354,注明备注。
展开
-
问题 D: 年终奖金
时间限制: 2 Sec 内存限制: 128 MB 题目描述 ***公司承接了N个项目需要年底完成,每个项目有一定的难度系数。由于项目太多了,需要招聘大量的技术人员。要求每个技术人员至少完成K个项目。 考虑到有些项目之间相似性以及项目的难易程度,为了避免某些员工只挑选轻松项目,CEO提出了一个奖励机制,当技术人员完成分配给他的任务后,年终可以得到一笔奖金,其得到的酬金将是C + (T原创 2017-05-30 20:18:10 · 277 阅读 · 0 评论 -
HDU2693 骨头收藏家II(第k大背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=2639题目意思给你n种骨头,每种骨头占用对应的空间,却有相应的价值。现在你有v的背包,问第k大的价值是多少(相同价值只算一次)解题思路第k大背包题,处理下值相同情况就可以了代码部分#include <bits/stdc++.h> using namespace std; #define LL lon原创 2017-11-19 20:29:17 · 358 阅读 · 0 评论 -
HDU2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=2191题目意思有n种大米,每种大米都有价格ai,重量bi和数量ci,问给定m元钱,最多购买多少大米解题思路多重背包的模板题,单大米数量乘单价大于给定m元钱时候,这种大米相当于完全背包任意取,单大米数量小于m时,把数量用二进制优化跑long2n次01背包代码部分#include <bits/stdc+原创 2017-11-19 20:37:53 · 187 阅读 · 0 评论 -
HDU1114 Piggy-Bank(完全背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1114题目意思给一个存钱罐初始重量和最终重量,给你n种银币,每种银币有对应的价值和重量,问存钱罐里面最低的价值是多少,如果没法得到输出“This is impossible.”解题思路由于要正好得到,所以初值要赋成INF,然后跑一边完全背包就可以了代码部分#include <bits/stdc++.原创 2017-11-19 20:51:42 · 182 阅读 · 0 评论 -
HDU 4501 小明系列故事——买年货(三维背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=4501题目意思小明有v1块钱,v2积分,和免费拿的k个名额,现在有n个物品,每个物品分别有需要的钱a,需要的积分b,和价值val。问你小明最多可以拿到最大价值是多少解题思路每个物品都是一个,都有3种方式得到,所以开个三维的01背包就可以了代码部分#include <bits/stdc++.h> us原创 2017-11-19 19:46:53 · 235 阅读 · 0 评论 -
HDU 1300 Pearls (dp)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1300 题目意思 皇家要购买一些珍珠,但是珍珠品质不一样,把不同品质珍珠分为1到100个等级,买没个等级的珍珠需要的支付的钱是:(数量+10)乘上单价。而皇室当然不介意买的的珍珠比要求的高级(也就是高等级珍珠可以代替低等级珍珠)现在已知皇室需要的珍珠清单,问你所需的最低价格。 解题思...原创 2018-03-05 20:10:44 · 149 阅读 · 0 评论 -
HDU 1421 搬寝室
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1421 题目意思 xhd要搬宿舍,有n件物品,只搬其中2*k件,每次搬运时疲劳值值为左右手的物品重量差的平方。问最少用多疲劳值搬完。 解题思路 不难想到相邻的物品一起搬最省力,所以将n件物品排序,从第二件物品开始没次加一件物品,如果选择搬运就和前一个物品一起搬,或者选择不搬。所以状态转...原创 2018-03-05 20:41:46 · 149 阅读 · 0 评论 -
POJ 1458 Common Subsequence(最长公共子序列)
【题目链接】 http://poj.org/problem?id=1458 题目意思 给两个字符串,问最长公共子子序列。(模板题) 解题思路 给个带图的博客:https://blog.csdn.net/sr_19930829/article/details/14058959 代码部分 #include <iostream> #include <algori...原创 2018-04-13 15:51:32 · 126 阅读 · 0 评论 -
poj 3186 Treats for the Cows (区间dp)
【题目链接】 http://poj.org/problem?id=3186 题目意思 一个长度为n的数列,每次都可以从两端取一个值,每次获得的权值等于数列值乘取的次数。问全部取完最大权值。 解题思路 dp[i][j]表示从i到j最大的权值,这样正的没办法计算第几次取的,所以只能从中间往两边扩,也就是从最后一次取往前推。注意循环i要倒着,不知道为什么要倒着想想01背包。 代码...原创 2018-09-16 16:08:21 · 130 阅读 · 0 评论 -
HDU2844 Coins(多重背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=2844题目意思给你n种银币,每种银币价值ai有bi个,问你不超过m元的能组合出多少种价格解题思路相当一个v的多重背包。代码部分#include <bits/stdc++.h> using namespace std; #define LL long long const int maxn=105;原创 2017-11-19 20:18:28 · 267 阅读 · 0 评论 -
HDU3449 Consumer(有依赖背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3449题目意思有N个箱子,每个箱子需要花费Ai的代价 箱子里面有K个物品,K个物品你可以选择买任意个,但每个物品只能买一个,每个物品有相应的花费和价值 你又M的大洋,最后问最多能得到多少价值物品。解题思路先对每组选择里的所有物品进行0-1背包处理,但背包容量为(总容量-盒子容量);然后跟上一原创 2017-11-19 20:08:53 · 293 阅读 · 0 评论 -
HDU1059 AreYouBusy(混合背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1059题目意思给你n种作业,每种作业里面分为m个工作,每种工作消耗一定时间获得一定快乐值,每种作业遵循规定:0.至少要选其中一个工作。 1. 至多可以取其中一个工作。 2.可以任意取中任意个工作(每个工作只能做一次)。现在给你个时间t问最多能获得多少快乐值,如果没法按要求则输出-1.解题思路经典混合原创 2017-11-14 17:50:51 · 179 阅读 · 0 评论 -
HDU6090 Rikka with Graph
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6090题目意思在一个无向图中,给你n个点和m条边。每个点到其他点权重为所走过的边的个数,无法到达的点权重为n。问你全部权重总和。解题思路当m=n-1时,正好将可以n点全部链接。而要使权值最小也就是选个中心点其他点都先与中心点相连。总权重等于(n-1)*(n-1)*2当m>n-1时把除中心点其他任意两原创 2017-08-09 09:44:28 · 189 阅读 · 0 评论 -
HDU 6078Wavel Sequence
【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6078题目意思给定两个数组问你同时满足波浪的波浪数。不理解可以看题目提示部分解题思路首先从a数组一个个往下查询b数组是否有相同数字。在查询新的数字时候就要判断前面是否有可以与新加的数字组成波浪的,而当新加数比前面的数大时候就可以添加前面数字为波谷的情况下,而自己添加后处在波峰的位子(如前面有的1 3,现原创 2017-08-04 17:04:04 · 611 阅读 · 0 评论 -
HDU6047 Maximum Sequence
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6047题目意思给你两个数组a,b。没个数组都有n个元素,接着求a【n+1】到啊【2*n 】,而a[i]=max{a[j]-j},b[k]解题思路根据题目可以知道每次a组值因为不断求出新的ai值而改变,所以设个dp数组存储区间的最大值,还有b数组限制着j能取的范围,而b数组的值的选择可以从小到大选,原创 2017-08-06 17:27:43 · 239 阅读 · 0 评论 -
HDU6170 Two strings(动态规划)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6170题目意思有两个字符串,问你第二个字符串和第一个字符串能否匹配,第二个字符串有两种符号,’.’可以匹配任意字符,’*’表示前一个字符可以重复零次或多次(0次也就是删除前一个字符)解题思路用dp[i][j]来表示b串第i个字符和前j个字符是否匹配。 当第i个字符为。时。由于‘。’可以匹配任意字符原创 2017-09-10 21:27:58 · 179 阅读 · 0 评论 -
HDU 1171 Big Event in HDU
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1171题目意思题目大意:给你n种价值的东西,每种东西都有m个,问你把这m*n个东西分成两部分,问你怎么分两部分最接近。解题思路直接求空间n*m/2的背包最大值就可以了,由于时间给的很多,数值也不大就直接用01背包跑就可以了。代码部分#include <bits/stdc++.h> using nam原创 2017-11-10 20:16:38 · 188 阅读 · 0 评论 -
HUD2602 Bone Collector(01背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=2602题目意思题目大意:给你n种价值的东西,没个物品都有个价值m和体积v,问给定一个V的背包存最大的价值。解题思路标准的01背包题,没坑直接上代码了代码部分#include <bits/stdc++.h> using namespace std; #define LL long long const原创 2017-11-10 20:37:57 · 161 阅读 · 0 评论 -
HDU1059 Dividing(多重背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1059题目意思题目大意:给你价值为1到6的物品各ai个,问这写物品的价值是否可以平分解题思路给的数据时间非常微妙,如果直接01背包跑会哇,但是用多重背包不跑完全背包部分又可以过,所以直接把各物品数量按二进制来分解,然后跑01就可以了(如13分为:1 2 4 6,这4个数字任意组合可以得到1到13的任原创 2017-11-13 19:12:19 · 218 阅读 · 0 评论 -
HDU 2159 FATE(二维完全背包)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=2159题目意思你需要n点经验升级,有把忍耐度为m的武器,现在有k种怪物,每种怪物有无限只,你最多杀s只,问是否能够升级,如果能输出还可以杀多少只,如果不能输出-1.解题思路一个二维的完全背包题目。直接上代码代码部分#include <bits/stdc++.h> using namespace st原创 2017-11-13 19:51:19 · 223 阅读 · 0 评论 -
HDU3433 A Task Process(dp+二分查找)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3433题目意思有n个人,和a,b两种任务,现在给你要n个人完成的a,b任务的总个数,和每个人完成a,b任务的时间,每个人完成任务互不影响,问最短达标时间。解题思路题目给了人数,a,b任务,求时间。首先由于求输出的时间为最优的,所以分配给每个人时间相同,接着又因为知道一个人a任务完成个数根据时间就能求原创 2017-11-19 19:06:41 · 184 阅读 · 0 评论 -
poj 1661 Help Jimmy (动态规划)
【题目链接】 http://poj.org/problem?id=1661 题目意思 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy...原创 2018-09-13 20:48:20 · 131 阅读 · 0 评论