题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712分析: 典型的分组背包问题,如果不会的可以看一下背包九讲。 看下背包九讲中的描述: for 所有的组k forv=V..0 for 所有...
分类:
其他好文 时间:
2014-11-25 18:02:18
阅读次数:
179
给出N个物品,M金钱,W种类
给出N个物品的性质:所属种类,花费,价值
求每一种类物品至少一个的前提下,所能购买到的最大价值
dp[i][k]表示在第i种物品,总花费为k的最大价值
dp[i][k]=Max(dp[i][k],dp[i][k-a[i][j].p]+a[i][j].v);
dp[i][k]=Max(dp[i][k],dp[i-1][k-a[i][j].p]+a[i...
分类:
其他好文 时间:
2014-11-19 18:45:13
阅读次数:
126
题意:小明有一个贤妻良母型的女朋友,他们两个一起洗衣服。有M种颜色的N件衣服,要求洗完一种颜色的衣服才能洗另外一种颜色。两人可以同时洗,一件衣服只能被一个人洗。给出洗每件衣服所用的时间,求两个人洗完这些衣服所用的最短时间。分析:因为每种颜色是分开洗的,所以我们可以单独考虑一种颜色的衣服。因为洗完这些...
分类:
其他好文 时间:
2014-11-18 14:43:19
阅读次数:
221
题目大意:给定n*m的木板,每个点需要刷成1和0两种颜色之一,每次只能刷一行中连续的一段,一个点只能刷一次,求T刷子最多能刷对多少个点
首先对每行拆开处理 令f[i][j]为用i刷子刷前j个格子最多刷对多少个点 动规处理出这一行刷i刷子最多能刷对多少个点 然后分组背包即可
#include
#include
#include
#include
#define M 60
using namesp...
分类:
其他好文 时间:
2014-11-04 19:47:34
阅读次数:
204
HDU 4341 Gold miner(分组背包)
http://acm.hdu.edu.cn/showproblem.php?pid=4341
题意:
一个人在原点(0,0)抓金子,每块金子是二维坐标平面的一个点(x,y)且y>0. 每块金子有一个价值v和获得需要的时间t。如果多个金子在一条从原点射出的直线上,那只能先抓近的,再抓远的。求在给定时间T下,所能获得的最大价值。
分析:
首先想想如果所有点都不共线是什么情况? 就是在给定时间T内要获取最大的价值和的点, 且所有点都可...
分类:
其他好文 时间:
2014-10-31 17:23:04
阅读次数:
174
HDU 1712 ACboy needs your help(分组背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1712
题意:
小杰有m天的时间去上n门不同的课. 对于第i门课来说, 如果小杰花j天的时间在该课上, 你们小杰可以获得val[i][j]的价值. 现在给出矩阵val[n][m], 要你求出小杰能获得的最大价值和?
分析:
咋一看, n门课, m天的时间, 要我们求最大价值. 那么明显是从n门课中选出合适的几门, 是的总花费...
分类:
其他好文 时间:
2014-10-31 10:08:49
阅读次数:
194
题目大意:给定n,定义一个置换的排数为1~n的循环经过这个置换最少T次(T>0)可以回到原来的序列 求所有可能的排数的数量
将一个置换分解为一些循环,那么这个置换的排数就是这些循环的长度的最小公倍数
于是对于一个数,我们验证这个数是否是排数的方式就是将这个数分解质因数,令x=p1^a1*p2^a2*...*pk^ak,若p1^a1+p2^a2+...+pk^ak
分组背包即可 令f[i][j...
分类:
其他好文 时间:
2014-10-28 12:18:49
阅读次数:
236
真的是蛮好的一题~里面的第二层循环 小变量 i j k分别从哪里开始 哪里结束 逆序 还是 顺序 都要好好地去体会我自己讲不来 至于为什么V是逆序 你可以将它当成某种特殊的01背包来看待 就很容易想了其实 第3层循环1 for( int k = 1 ; k=k )4 ...
分类:
其他好文 时间:
2014-10-28 11:40:08
阅读次数:
162
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033题意:给你K种品牌,每种品牌有不同种鞋,现在每种品牌至少挑一款鞋,问获得的最大价值,如果不能每种品牌都挑到则输出Impossible自己太弱了!!!!!这个题都想不出来!!!!!还要看题解!!!!!...
分类:
其他好文 时间:
2014-10-27 12:31:48
阅读次数:
214
题意:
挖金矿,人在(0,0)点
n个金子 游戏时间为T
下面n行
(x, y) cost val
且若人 和 多块金子共线时,只能先取最近的金子,依次取,就是和游戏一样的。
且所有点只在1 2象限
思路:
我们先把所有共线的点分组
对于每组的物品,我们都可以认为取这个物品的花费就是前面所有物品的花费总和,而价值就是前面所有物品的价值总和。
这样就能消除每组物品的先取后取的影响...
分类:
其他好文 时间:
2014-10-10 16:24:14
阅读次数:
198