随笔分类 -  动态规划

摘要:传送门 题意 给定一个长度为$n$的一维区间,区间里有$k$个空调,不存在重合的情况。每个空调能在其位置$a$上造成温度$t$,每远离该位置$1$个单位距离,温度上升$1$。每个点的温度是所有的空调在这里造成的温度的最小值。 思路 易知往右边的位置,是左边的空调的最小值加上$1$,右边的空调最小值减 阅读全文
posted @ 2021-09-13 22:53 筱翼深凉 阅读(78) 评论(0) 推荐(0)
摘要:该题与$IndeedTokyo2019$校招笔试题涉及密码有相同的思路,都是$DP$问题。 思路 由于状态的数量众多,所以我们需要使用状态机模型考虑一大类状态的转移。 使用闫氏$DP$分析法,从集合角度分析问题: 状态表示:\(f[i, j]\),表示长度为$i$且没有不吉利数字,且与不吉利数字匹配 阅读全文
posted @ 2021-06-14 17:46 筱翼深凉 阅读(131) 评论(1) 推荐(0)
摘要:树形dp的基础题。 由于是一个树形结构,所以我们和容易就可以得到一个拓扑图,由此我们在存图时只需要存下每个点的入度,然后对入度为0的节点进行搜索dp即可。 状态表示为f[i][2],f[i][0]表示第i个人不参加宴会的最大快乐指数,f[i][1]表示第i个人参加宴会的快乐指数,所以我们的状态转移方 阅读全文
posted @ 2021-04-12 02:23 筱翼深凉 阅读(68) 评论(0) 推荐(0)
摘要:线性dp 状态表示为f[i, j],表示将a的前i个字符变为b的前j个字符所需要的最小操作数。 我们的操作有三种:删除、增加和修改。 删除:我们删除第i个字符,那么我们就必须使得a的前i - 1个字符和b的前j个字符相等,即f[i][j] = f[i - 1][j] + 1; 增加:我们要使增加字符 阅读全文
posted @ 2021-04-10 19:41 筱翼深凉 阅读(78) 评论(0) 推荐(0)
摘要:题目链接 题目大意: 给定一个数组a,长度为n,要求从其中选择若干个数使得这些数的乘积的最后一位数等于m的数最大。 题目意思很简单,但由于数据范围较大我们需要对每个数取log将其转化我对数的加法运算。 这样我们可以很容易的看出这道题于01背包之间的联系,从n个数中选择若干个数使其的和最大且乘法的最后 阅读全文
posted @ 2021-04-07 16:51 筱翼深凉 阅读(493) 评论(0) 推荐(1)
摘要:熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。 小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。 小沐沐说,对于两个数列A和B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升 阅读全文
posted @ 2020-12-22 03:00 筱翼深凉 阅读(162) 评论(0) 推荐(0)
摘要:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 某天,雷达捕捉到敌国的导弹来袭。 由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度( 阅读全文
posted @ 2020-12-05 03:43 筱翼深凉 阅读(157) 评论(0) 推荐(0)
摘要:二进制的很多应用离不开集合这个概念,我们都知道在计算机当中,所有数据都是以二进制的形式存储的。一般一个int整形是4个字节,也就是32位bit,我们通过这32位bit上0和1的组合可以表示多大21亿个不同的数。如果我们把这32位bit看成是一个集合,那么每一个数都应该对应集合的一种状态,并且每个数的 阅读全文
posted @ 2020-11-13 12:55 筱翼深凉 阅读(227) 评论(0) 推荐(0)
摘要:区间dp问题,其基本思路就是 对于每段区间,他们的最优值都是由几段更小区间的最优值得到,是分治思想的一种应用,将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举他们的组合 ,求合并后的最优值。设F[i,j](1<=i<=j<=n)表示区间[i,j]内的数字相加的最小代价最小区间F[i,i 阅读全文
posted @ 2020-11-12 02:21 筱翼深凉 阅读(207) 评论(0) 推荐(0)
摘要:有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下来有 N 行,每行三个整 阅读全文
posted @ 2020-11-10 02:19 筱翼深凉 阅读(186) 评论(0) 推荐(0)
摘要:有 NN 组物品和一个容量是 VV 的背包。 每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vijvij,价值是 wijwij,其中 ii 是组号,jj 是组内编号。 求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行有两个整数 阅读全文
posted @ 2020-11-10 01:57 筱翼深凉 阅读(162) 评论(0) 推荐(0)
摘要:有 NN 种物品和一个容量是 VV 的背包,每种物品都有无限件可用。 第 ii 种物品的体积是 vivi,价值是 wiwi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。 接 阅读全文
posted @ 2020-11-09 16:29 筱翼深凉 阅读(128) 评论(0) 推荐(0)
摘要:上题目: 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 v[i],价值是 w[i]。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来 阅读全文
posted @ 2020-11-04 15:12 筱翼深凉 阅读(90) 评论(0) 推荐(0)
摘要:动态规划的实质就是使用分治的思想,将当前的大问题分割成一个一个小问题来解决,最后用递推来实现每种问题之间的联系。未优化的动态规划就是使用二维数组来存储每种状态(按照我目前学的进度是这样,不能绝对的说)。 本质是对每一个小问题求出最优解,并且用递推的思想的来这种最优解的状态送到下一个问题,使得下一个问 阅读全文
posted @ 2020-11-04 15:06 筱翼深凉 阅读(135) 评论(0) 推荐(0)