随笔分类 -  动态规划

摘要:Topic Links Topic meaning:在n行m列中找出一个r行c列的子矩阵,求此子矩阵最小的分值 Topic of solving:动态规划 枚举r行的全排列情况,对每一种情况运用动态规划求出其m列中选取c列算得的最小分值 设f[i][j]为前i列中选j列可得的最小分值,f[i][j] 阅读全文
posted @ 2019-11-12 17:35 Evolutw 阅读(122) 评论(0) 推荐(0)
摘要:Topic Links Topic meaning:求出可获得的最高得分 Topic of solving:动态规划 由于每一个点的分值可能不同,因此不同的卡牌使用顺序可能得到不同的分值,即如果我们能求得最佳的卡牌使用顺序即求出了最高的得分。 先按照暴力的思路来即求出所有的卡牌使用顺序可以得到的分值 阅读全文
posted @ 2019-11-06 23:15 Evolutw 阅读(136) 评论(0) 推荐(0)
摘要:Topic Links Topic Meaning:有n个骨牌,骨牌有带有相应点数的上下俩部分,这n个骨牌的上部分和与下部分和之差的绝对值为m,骨牌可以翻转,即上部分点数与下部分点数交换,则得到最下的m的所需的翻转次数为多少? Topic of Solving:线性背包 以第i个骨牌为阶段,前i个骨 阅读全文
posted @ 2019-08-27 14:16 Evolutw 阅读(121) 评论(0) 推荐(0)
摘要:Topic Links Topic Meaning:有n个箱子,每个箱子都有其相应花费box,箱子价值为0,对于每个箱子都有一些可以购买的珠宝,每个珠宝都有其花费和价值,只有在购买了箱子后才可以购买其相应珠宝,问在总花费不超过m元的情况下可得到的最大价值 Method of Solving:依赖背包 阅读全文
posted @ 2019-08-25 23:41 Evolutw 阅读(116) 评论(0) 推荐(0)
摘要:Topic Links Topic Meaning:有一天平其左右臂长为15,有m个数字,一个数字表示天平上一个钩子距天平中心点的距离,左边为负数,右边为正数,有n个质量确定的砝码,所有砝码都应被悬挂上去,一个钩子可以挂多个砝码,问有多少种挂法使得天平保持平衡; Method of Solving: 阅读全文
posted @ 2019-08-22 14:27 Evolutw 阅读(103) 评论(0) 推荐(0)
摘要:Topic Links Topic Meaning:给出n个数从中选a个数构成一组,剩下的b个数为一组,a与b的差值不超过1,求这两组数字总和差值最小时的两组的值。 Method of Solving:二维背包 dp[j][k]表示是否存在一组当其有k个数时,其值为j,以所有数字总和sum/2为第一 阅读全文
posted @ 2019-08-21 21:18 Evolutw 阅读(153) 评论(0) 推荐(0)
摘要:Topic Links Topic Meaning:给出n个数字,第i个数字有c[i]个,那么能组成多少种不大于m的数字? Method of Solving:混合背包,完全背包+多重背包 引入数组g记下当前阶段某状态的数字使用次数,使得可对状态转移中对数字的使用次数进行判断 阅读全文
posted @ 2019-08-21 14:18 Evolutw 阅读(101) 评论(0) 推荐(0)
摘要:题目链接 题意:有n天,每天都会有一只乐队的演唱会,一只乐队可多天进行演唱会,乐队编号为A~Z,按乐队编号给出john观看乐队演唱会的序列,每看完某乐队的演唱会都将休息相应天数 john将按序列逐个观看演唱会,那么john在这n天中的出勤情况有多少种? 解法:动态规划,从后往前推,f[i][j]表示 阅读全文
posted @ 2019-08-19 10:22 Evolutw 阅读(121) 评论(0) 推荐(0)
摘要:题目链接 题意:给出尼克工作时间长m,以及其 n个任务的开始时间和持续时间,尼克从1开始工作到m,若当前时间点为其中某任务开始时间尼克必须进行此任务,若有多个任务尼克选择其中一个执行,尼克未工作的时间为空闲时间,求最大空闲时间; 解法:因为前面选择的任务会影响到后来对任务的选择,难以得出其状态之间的 阅读全文
posted @ 2019-08-16 15:20 Evolutw 阅读(118) 评论(0) 推荐(0)
摘要:题目链接 题意:按次序给出一串环状数字,每次选取相邻俩数字将其合并成一个数字并将得到的数字计入总值,求出可以得到的最大总值和最小总值 解法:区间dp 因为数字为环状,所以通过在原串数字的尾端 加上一串原数字来线性模拟环状; 以i为区间首端,p为区间长度,可得区间尾端j=i+p-1,k表示两区间合并的 阅读全文
posted @ 2019-08-16 14:22 Evolutw 阅读(136) 评论(0) 推荐(0)
摘要:题目链接 题意:给出n种高度为h方块,每种有c个,求可用方块堆成的塔的最高高度,每种方块在塔中都有其限制高度a,塔中堆叠的方块的高度不可超过a 解法:多重背包 因为按a小则a在下的堆叠方式可得到最高高度,所以根据a对数据进行排序,而后按塔的高度从小往大进行状态转移; 阅读全文
posted @ 2019-08-14 17:00 Evolutw 阅读(97) 评论(0) 推荐(0)
摘要:题目链接 题意:在TS与TF不为负数的条件下求出TS+TF的最大值 dp[TS]=TF表示数组下标为TS时可得到的最大的TF,TS值可为负由于数组下标不可为负,因此加入修正值fix=100000即取dp[100000]=0;因为dp数组的值可为负值故其初值取负无穷 以选取的奶牛i为阶段,TSk为状态 阅读全文
posted @ 2019-08-06 14:24 Evolutw 阅读(85) 评论(0) 推荐(0)
摘要:题目链接 题意:A往下或往右从(1,1)走到(n,m),B往上或往右从(n,1)走到(1,m),输出结果为A与B走过的点的权值和,A与B必需有一交汇点,交汇点权值不计入总和,A与B所走路径除交汇点外不重复 解法:递推DP dp1[i][j]表示从(1,1)至(i,j)的最大权值和,dp2[i][j] 阅读全文
posted @ 2019-08-05 17:52 Evolutw 阅读(96) 评论(0) 推荐(0)
摘要:题目链接 可知题目要求输出所有解中第K优的解 解法:动态规划求第K优解 传统的动态规划方程为f[i][j]=max(f[i-1][j],f[i-1][j-a[i]]+b[i]),可知因为max只取其中较大的一个,因此我们会遗漏部分解,而要输出第k优解应将其所有的解按递减顺序不重复的储存起来,所以我们 阅读全文
posted @ 2019-08-05 09:36 Evolutw 阅读(120) 评论(0) 推荐(0)
摘要:题目链接 01背包 i-前i个物品,k-体积,a[i]-第i个物品体积,b[i]--第i个物品价值 状态转移方程:f[i][k]=max(f[i-1][k],f[i-1][k-a[i]]+b[i]); 滚动数组优化 以体积递减为状态的转移 阅读全文
posted @ 2019-08-04 20:26 Evolutw 阅读(94) 评论(0) 推荐(0)
摘要:题目链接 题目要求输出最多能拦截的导弹数与拦截全部导弹最少系统配备数; 显然最多能拦截的导弹数即为最长非上升子序列;分析可得拦截全部导弹最少系统配备数为最长上升子序列个数; 原序列最长上升子序列个数为a,则原序列至少由a个非上升子序列构成;若由 b(b<a)个非上升子序列构成则存在一个非上升子序列包 阅读全文
posted @ 2019-08-04 17:03 Evolutw 阅读(217) 评论(0) 推荐(0)
摘要:题目链接 题意:给定一括号序列,求出添加括号数最小的完整序列 解法:区间DP 定义dp[i][j]表示题目所给字符串s中从左至右字符i至j这一区间段括号序列构成完整序列所需添加的最小括号数; 根据i与j的大小对dp[i][j]进行初始化,i==j显然为1,i>j不符合定义中从左至右意为空序列即0,i 阅读全文
posted @ 2019-08-03 21:34 Evolutw 阅读(113) 评论(0) 推荐(0)