随笔分类 - 动态规划-常规
摘要:1 /* 2 这道题目有一定的思维量, 3 说是有M,L两个总量,A[1]...A[N], 4 最后要使得 M+L>=sum(A[1]...A[N])....其中A[i]必须用其中一种装 5 之前的想法: 6 用 dp[i][j]:表示装到第i个物品,M中还有j没装,我们知道(M-j)+(L-j'...
阅读全文
摘要:【题解】:【代码】: 1 #include 2 #include 3 #include 4 #define LL long long 5 using namespace std; 6 7 bool dp[505][505];//已经用了i个人,已分配出j个任务 8 LL S[505]; 9 ...
阅读全文
摘要:【题解】:【代码】: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define LL long long 7 using namespace std; 8 LL dp[15][100005]; 9 LL N,h,uh,...
阅读全文
摘要:【参考】:http://www.cnblogs.com/Xredman/archive/2009/04/21/1440744.html【题意】:城市有N个城区,现在在出发点L1有三辆小车,在L1无限多的杂志提供。现在进行配送:规则如下:1、只有Li-1送到了,才能送Li 2、每次只能一辆...
阅读全文
摘要:【题意】:题意:有n种设备,每种有mi件,每件设备有一个带宽和价格,从每种设备中选一件,使得带宽B/总价格P的值最大。B为挑选的n件设备中带宽最小的设备的带宽,P为n件设备的总价格。【分析】:int dp[105][10005];//i件设备,最小带宽(瓶颈)为j时的最小花费那么,这个问题就类似一个...
阅读全文
摘要:【题意】:多重背包问题【分析】:将物品按二进制拆成01的单个物品,在按照普通的背包的做法即可,同时,也可以滚动数组优化。易错点:用数组空间用数字定义不容易弄错,分解是按照1,2,4,8....的顺序来的可以写成搜索(要好好研究这个方法,比如这个:http://vjudge.net/problem/v...
阅读全文
摘要:【题意】:有n个城市,一个人从i到j城市时,可以得到income[j]的财富,需要消耗cost[i][j]的财富,也可以选择不动,也就是呆在i城市,那么可以得到income[i]的财富,需要消耗cost[i][i]的财富,但每个城市的incom[]是随天数变化的,求出m天内这个人能获得的最大的财富值...
阅读全文
摘要:题目描述:给定n维的m个物品,按照各维长度严格递增的排序,求最长的序列,并按照字典序输出。例如n=4,(1 2 3 4)之后是(2,3,4,5)就可以。思维过程:《入门经典》上DAG模型。枚举状态结点时,出现了思维误区。想要把n维的n个长度滚动成n种状态点。上述考虑固然可以,但是不是n种状态点,因为...
阅读全文