01背包
big up
这个作者很懒,什么都没留下…
展开
-
UVA10154 01背包
题目大意: 给出乌龟的体重和可以承受的重量。 求可以叠起来的最高的乌龟是多少。思路: dp[i][j]表示的是前i只到第j层的最轻的重量。 首先,要按照乌龟的承受重量从小到大排序。 只要,s[i] - w[i] >= dp[i - 1][j - 1] && dp[i -1][ k - 1] !=INF (条件: s[i] - w[i] >= dp[i - 1][j - 1]那么就可以承受原创 2016-03-01 21:11:47 · 378 阅读 · 0 评论 -
UVA10201
题目大意: 有t组测试数据,每组数据的开始表示终点的位置,然后接下来有若干对数x,y,x表示沿途的加油的位置,y表示每升油的价格。每组数据间有一个空行。开始的时候在位置0,油箱里有100升汽油,问最后到达终点,且油箱里还有100升汽油所需的最小花费是多少。思路: 首先,给出你到的加油站i,然后剩下的油j,找出在i前面哪个站可以加油,且加油的花费最小(假设第k个站)。dp[i][j] 表示到了第i原创 2016-03-02 11:52:55 · 279 阅读 · 0 评论 -
uva10817
题目大意: 这间学校开设S门课,给出校长已经有的师资n,然后再给出m个应聘者,每门课至少有两名任课老师,求最少需要的雇佣工资。思路: 01背包问题,要嘛选这名老师教这门课要嘛不选。 将状态压缩。 dp[i][k]表示第i种状态第k个应聘者时可以有的最低雇佣工资。 假设有4门功课,每门功课有一个任课老师,表示为00001111,如果第一门有两个任课老师表示为00011110。有两个以上任课老原创 2016-03-07 16:09:22 · 810 阅读 · 0 评论 -
uvalive4015
题目大意: 一棵n个节点的有根树,树的边有正整数权,表示两个节点之间的距离,你的任务是回答这样的询问,从根节点出发,走不超过x单位的距离,最多能走多少个节点,节点经过多次算一个,对于每次的询问输出:经过节点数最大的值思路: 树形DP。 树形DP一般都是用三维结构完成的。 dp[i][j][k]表示根节点为i经过了j个节点,类似于01背包,k== 0表示返回,k == 1表示不返回。 所以如原创 2016-04-26 11:38:51 · 312 阅读 · 0 评论