随笔分类 - 动态规划(DP)
UVa 1629 Cake slicing (记忆化搜索)
摘要:题意:一个矩形蛋糕上有好多个樱桃,现在要做的就是切割最少的距离,切出矩形形状的小蛋糕,让每个蛋糕上都有一个樱桃,问最少切割距离是多少。 析:很容易知道是记忆化搜索,我们用dp[u][d][l][r]来表示,上界是u,下界是d,左边是l,右边是r,然后不断切割,不过要注意切的时候是按缝隙切, 缝隙多一
阅读全文
UVaLive 6625 Diagrams & Tableaux (状压DP 或者 DFS暴力)
摘要:题意:给一个的格子图,有 n 行单元格,每行有a[i]个格子,要求往格子中填1~m的数字,要求每个数字大于等于左边的数字,大于上边的数字,问有多少种填充方法。 析:感觉像个DP,但是不会啊。。。就想暴力试试,反正数据量看起来不大才7,但是。。。TLE了,又换了一个暴力方法,2秒多过了,差点啊。 其实
阅读全文
UVaLive 7374 Racing Gems (DP,LIS)
摘要:题意:以辆赛车可以从x轴上任意点出发,他的水平速度允许他向每向上移动v个单位,就能向左或向右移动v/r个单位(也就是它的辐射范围是个等腰三角形) 现在赛车从x轴出发,问它在到达终点前能吃到的最多钻石。 析:那个v是怎么变那个是不变的。比例考虑每个钻石的向下辐射范围,并且将其投影到x轴上的两个点,(辐
阅读全文
UVa 1252 Twenty Questions (状压DP+记忆化搜索)
摘要:题意:有n件物品,每件物品有m个特征,可以对特征进行询问,询问的结果是得知某个物体是否含有该特征,要把所有的物品区分出来(n个物品的特征都互不相同), 最小需要多少次询问? 析:我们假设心中想的那个物体为W,首先知道的是,同一个特征不用问多次,所以首先用一个集合s表示已经问的特征,在这里面有的是W具
阅读全文
UVa 10817 Headmaster's Headache (状压DP+记忆化搜索)
摘要:题意:一共有s(s ≤ 8)门课程,有m个在职教师,n个求职教师。每个教师有各自的工资要求,还有他能教授的课程,可以是一门或者多门。 要求在职教师不能辞退,问如何录用应聘者,才能使得每门课只少有两个老师教而且使得总工资最少。 析:用两个集合来表示状态,s1表示恰好有一个人教的科目,s2表示至少有两个
阅读全文
HDU 3664 Permutation Counting (DP)
摘要:题意:给一个 n,求在 n 的所有排列中,恰好有 k 个数a[i] > i 的个数。 析:很明显是DP,搞了好久才搞出来,觉得自己DP,实在是太low了,思路是这样的。 dp[i][j]表示 i 个排列,恰好有 j 个数,dp[i][j] = dp[i-1][j] * (j+1) + dp[i-1]
阅读全文
HDU 3665 Seaside (最短路,Floyd)
摘要:题意:给定一个图,你家在0,让你找出到沿海的最短路径。 析:由于这个题最多才10个点,那么就可以用Floyd算法,然后再搜一下哪一个是最短的。 代码如下:
阅读全文
HDU 4489 The King’s Ups and Downs (DP+数学计数)
摘要:题意:给你n个身高高低不同的士兵。问你把他们按照波浪状排列(高低高或低高低)有多少方法数。 析:这是一个DP题是很明显的,因为你暴力的话,一定会超时,应该在第15个时,就过不去了,所以这是一个DP计数问题。 那么我们应该怎么想呢,我们先假设前 i-1 个已经放好了,然后第 i 个一定是最高的,所以,
阅读全文
CodeForces 706C Hard problem (水DP)
摘要:题意:对于给定的n个字符串,可以花费a[i] 将其倒序,问是否可以将其排成从大到小的字典序,且花费最小是多少。 析:很明显的水DP,如果不是水DP,我也不会做。。。。 这个就要二维,d[2][maxn],d[0][i]表示第 i 个不反转是最小花费,d[1][i]表示第 i 个反转最小花费,那么剩下
阅读全文
POJ 3666 Making the Grade (DP)
摘要:题意:输入N, 然后输入N个数,求最小的改动这些数使之成非严格递增即可,要是非严格递减,反过来再求一下就可以了。 析:并不会做,知道是DP,但就是不会,菜。。。。d[i][j]表示前 i 个数中,最大的是 j,那么转移方程为,d[i][j] = abs(j-w[i])+min(d[i-1][k]);
阅读全文
POJ 3671 Dining Cows (DP,LIS, 暴力)
摘要:题意:给定 n 个数,让你修改最少的数,使得这是一个不下降序列。 析:和3670一思路,就是一个LIS,也可以直接暴力,因为只有两个数,所以可以枚举在哪分界,左边是1,右边是2,更新答案。 代码如下:
阅读全文
POJ 3670 Eating Together (DP,LIS)
摘要:题意:给定 n 个数,让你修改最少的数,使得它变成一个不下降或者不上升序列。 析:这个就是一个LIS,但是当时并没有看出来。。。只要求出最长LIS的长度,用总数减去就是答案。 代码如下:
阅读全文
UVa 10900 So you want to be a 2n-aire? (概率DP,数学)
摘要:题意:一 个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏, 获得当 前奖金;回答下一道问题,答对的概率p在t到1之间,答对的话奖金翻倍,答错的话结束游戏,没有奖金,求玩家赢的奖金的期望值的最大值。 析:首先是求
阅读全文
HDU 4597 Play Game (DP,记忆化搜索,博弈)
摘要:题意:Alice和Bob玩一个游戏,有两个长度为N的正整数数字序列,每次他们两个,只能从其中一个序列,选择两端中的一个拿走。他们都希望可以拿到尽量大的数字之和, 并且他们都足够聪明,每次都选择最优策略。Alice先选择,问最终Alice拿到的数字总和是多少? 析:很明显的一个博弈题,但是用记忆化搜索
阅读全文
HDU 4599 Dice (概率DP+数学+快速幂)
摘要:题意:给定三个表达式,问你求出最小的m1,m2,满足G(m1) >= F(n), G(m2) >= G(n). 析:这个题是一个概率DP,但是并没有那么简单,运算过程很麻烦。 先分析F(n),这个用DP来推公式,d[i],表示抛 i 次连续的点数还要抛多少次才能完成。那么状态转移方程就是 d[i]
阅读全文
HDU 5443 The Water Problem (水题,暴力)
摘要:题意:给定 n 个数,然后有 q 个询问,问你每个区间的最大值。 析:数据很小,直接暴力即可,不会超时,也可以用RMQ算法。 代码如下:
阅读全文
HDU 5707 Combine String (DP,LCS变形)
摘要:题意:给定三个字符串,问你第三个是不是由第一个和第二个组成的。 析:当时比赛是没有做出来啊。。。一直WA,就是没有判断长度,第一个和第二个和是不是和第三个一样,这个忘记。。。 我们用d[i][j]表示第一个字符串匹配到 i, 第二个匹配到第 j 个,然后只要判断能不能由上一个得到就好。这个主要是d[
阅读全文
POJ 3172 Scales (01背包暴力)
摘要:题意:给定 n 个数,保证下一个数比上一个数和前一个数之和大,然后给定一个背包,问你最多放多少容积。 析:应该是很明显的01背包,但是可惜的是,数组开不出来,那就得考虑暴力,因为数不多,才几十而已,要不然就超int了,然后我就暴力做了,超时了, 这个还是前剪枝的,这样剪的,先把前几项和算出来,确定最
阅读全文
POJ 3176 Cow Bowling (水题DP)
摘要:题意:给定一个金字塔,第 i 行有 i 个数,从最上面走下来,只能相邻的层数,问你最大的和。 析:真是水题,学过DP的都会,就不说了。 代码如下:
阅读全文
浙公网安备 33010602011771号