动态规划
iot_xiaohe
这个作者很懒,什么都没留下…
展开
-
hdu 1176 简单动态规划
http://acm.hdu.edu.cn/showproblem.php?pid=1176 该题目是一个数塔问题,用数组a[][]记录数据,对于每一个x和T,令a[x][T]++,然后从最大的T开始向前逐步求最优解。a[i][j]的最优解为: a[i][j]+=max(a[i-1][j+1],a[i][j+1],a[i+1][j+1]) #include #include int a[原创 2013-03-19 20:20:33 · 1093 阅读 · 0 评论 -
hdu 1069 简单动态规划
http://acm.hdu.edu.cn/showproblem.php?pid=1069 /* 题目大意:给出n种类型的木块,求用这些木块可以堆起的最大高度,要求上边的木快的长和宽都要严格小于下边。 */ #include #include #define N 95 int f[N]; //f[N]记录加上第i个木块后的最大高度 struct X { int x,y,z; }blo原创 2013-03-20 11:49:54 · 1234 阅读 · 0 评论 -
hdu 2059 简单动态规划
http://acm.hdu.edu.cn/showproblem.php?pid=2059 该题目需要从整体考虑,对于充电站和终点这N+1个点,到达他们的最短时间肯定是从他们前边的某个点冲完电后直接到达的。用t[i]记录到第i个点时的最短距离,则t[i]就是从0——>(i-1)这些点冲满电直接到点i所用时间的最小值。 #include int L,N,C,T,Vr,Vt1,Vt2,q原创 2013-03-21 15:52:58 · 764 阅读 · 0 评论 -
hdu 1466 简单动态规划
http://acm.hdu.edu.cn/showproblem.php?pid=1466 如果有n条直线,最多可有n*(n-1)/2个交点。 如果i条线可以相加出j个交点,那么记f[i][j]=1;否则f[i][j]=0。 * 当n=1时,方案为0 * 当n=2时,方案为0,1 * 当n=3时,方案为0,2,3 * 当n=4时,4条平行:方案为0原创 2013-03-20 19:33:47 · 1210 阅读 · 0 评论 -
hdu 1159 公共子序列
http://acm.hdu.edu.cn/showproblem.php?pid=1159 用二维数组f[i][j]记录字符串s1的前i个字符与s2的前j个字符的最大公共子串。当s1[i]==s2[j]时,f[i][j]=f[i-1][j-1]+1;否则f[i][j]=max(f[i-1][j],f[i][j-1]); #include #include #define max(a,原创 2013-03-19 12:59:09 · 1260 阅读 · 0 评论 -
poj 3624 (0-1背包)
http://poj.org/problem?id=3624 /* 问题描述:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是: f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i原创 2013-04-22 12:39:58 · 724 阅读 · 0 评论 -
hdu1114 & poj1384 完全背包
http://acm.hdu.edu.cn/showproblem.php?pid=1114 http://poj.org/problem?id=1384 /* 问题描述:有N种物品和一个容量为V的背包,每种物品有无限件。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大(或最小)。 按照0-1背包的思路写出状态转移方程: f[i][v]=max{f[原创 2013-04-22 15:57:21 · 801 阅读 · 0 评论 -
hdu 1171 多重背包
http://acm.hdu.edu.cn/showproblem.php?pid=1171 /* 问题描述:有N种物品和一个容量为V的背包。第i种物品有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 状态转移方程: f[i][v]=max{f[i-1][v-k*c[i]]+k*w[i]|0 优化方法: 对于第i件物品: 1.若总价值原创 2013-04-22 17:57:40 · 1084 阅读 · 0 评论 -
hdu 2955 (0-1背包变形)
http://acm.hdu.edu.cn/showproblem.php?pid=2955 题目大意:劫匪抢银行,要求被抓概率小于P。共有n个银行,第i个银行钱数为m[i],被抓概率为p[i](float型);求劫匪最多能抢多少钱; 思路:由于代价(被抓概率)是浮点型且不能直接相加,所以不能以代价为背包。这个题目可以以获得的价值(即抢到的钱数)为背包,求抢到一定钱时逃跑的概率;虽然抢到的钱数原创 2013-05-06 07:55:23 · 851 阅读 · 0 评论