动态规划
小龚主
这个作者很懒,什么都没留下…
展开
-
【阶段1】【单调队列】剪裁序列
【题意】给定一个长度为 N 的序列 A ,要求把该序列分成若干段,在满足“每段中所有数的和”不超过M的前提下,让“每段中所有数的最大值”之和最小。试计算这个最小值。【输入格式】第一行包含两个整数N和M。第二行包含N个整数,表示完整的序列A。【输出格式】输出一个整数,表示结果。如果结果不存在,则输出-1。【数据范围】0≤N≤10^5,0≤M≤10^11,序列A中的数非负,且不超过10^6【输入样例】8 172 2 2 8 1 8 2 1【输出样例】12思路:想到用.原创 2020-11-03 17:21:42 · 182 阅读 · 0 评论 -
【阶段1】【动态规划】【对顶堆】
【题意】给定一个长度为N的整数数组A,你需要创建另一个长度为N的整数数组B,数组B被分为K个连续的部分,并且如果i和j在同一个部分,则B[i]=B[j]。如果要求数组B能够满足Σ|A[i]-B[i]|最小,那么最小值是多少,请你输出这个最小值。【输入格式】输入包含多组测试数据。对于每组测试数据,第一行包含两个整数N和K。接下来N行每行包含一个整数,表示完整的数组A。当输入为一行0 0时,表示输入终止。【输出格式】对于每组数据,输出一个最小值。每个结果占一行。【数据范围】1≤N≤20.原创 2020-10-30 22:20:44 · 235 阅读 · 0 评论 -
【阶段1】【动态规划DP】计算机
题目描述:一所学校前一段时间买了第一台计算机(所以这台计算机的ID是1)。近年来,学校又购买了N-1台新计算机。每台新计算机都与之前买进的计算机中的一台建立连接。现在请你求出第i台计算机到距离其最远的计算机的电缆长度。例如,上图中距离计算机1最远的是计算机4,因此 S1=3;距离计算机2最远的是计算机4和5,因此 S2=2;距离计算机3最远的是计算机5,所以 S3=3;同理,我们也得到 S4=4,S5=4。【输入格式】输入包含多测试数据。每组测试数据第一行包含整数N。接下来N-1行,每.原创 2020-10-28 15:53:19 · 493 阅读 · 0 评论 -
【阶段1】【动态规划DP】POJ 1390 Blocks or 消木块
【题意】你们中的一些人可能玩过一个叫做消木块的游戏。n个木块排成一列,每个木块都有一个颜色。例如下图中木块的颜色分别为:金,银,银,银,银,铜,铜,铜,金。每次,你都可以点击一个木块,这样被点击的木块以及和它相邻并且同色的木块就会消除。如果一次性消除了k个木块,那么就会得到k*k分。例如下图所示,点击银色木块,四个木块被消去,得到16分。给定你一个游戏初始状态,请你求出最高得分是多少。【输入格式】第一行包含整数t,表示共有t组测试数据。每组数据第一行包含整数n,表示共有n个木块。.原创 2020-10-26 13:45:02 · 479 阅读 · 0 评论 -
【阶段1】【贪心】【动态规划】饼干
题目描述:圣诞老人共有MM个饼干,准备全部分给N个孩子。每个孩子有一个贪婪度,第 i 个孩子的贪婪度为 g[i]。如果有 a[i]a[i] 个孩子拿到的饼干数比第 ii 个孩子多,那么第 ii 个孩子会产生 g[i]×a[i]的怨气。给定N、M和序列g,圣诞老人请你帮他安排一种分配方式,使得每个孩子至少分到一块饼干,并且所有孩子的怨气总和最小。输入格式第一行包含两个整数N,M。第二行包含N个整数表示g1~gN。输出格式第一行一个整数表示最小怨气总和。第二行N个空格隔开的.原创 2020-10-07 16:11:40 · 1613 阅读 · 2 评论 -
【阶段1】【线性动态规划】I-区域
题目描述:【题意】在 N*M 的矩阵中,每个格子有一个权值,要求寻找一个包含 K 个格子的凸连通块(连通块中间没有空缺,并且轮廓是凸的),使这个连通块中的格子的权值和最大。注意:凸连通块是指:连续的若干行,每行的左端点列号先递减、后递增,右端点列号先递增、后递减。求出这个最大的权值和,并给出连通块的具体方案,输出任意一种方案即可。【输入格式】第一行包含三个整数N,M和K。接下来N行每行M个整数,表示N*M的矩阵上每个格子的权值(均不超过1000)。【数据范围】1<=n,m<.原创 2020-10-07 11:10:32 · 320 阅读 · 0 评论