动态规划
Ashen_ffm
这个作者很懒,什么都没留下…
展开
-
Leetcode---410. 分割数组的最大值---每日一题---动态规划 or 二分查找
410. 分割数组的最大值给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)示例:输入:nums = [7,2,5,10,8]m = 2输出:18解释:一共有四种方法将nums分割为2个子数组。其中最好的方式是将原创 2020-07-25 11:49:40 · 231 阅读 · 0 评论 -
Leetcode---312. 戳气球---每日一题---记忆化 or 动态规划
312. 戳气球有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。如果你戳破气球 i ,就可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气球。求所能获得硬币的最大数量。说明:你可以假设 nums[-1] = nums[n] = 1,但注意原创 2020-07-19 12:11:00 · 279 阅读 · 0 评论 -
Leetcode---97. 交错字符串---每日一题---动态规划
97. 交错字符串给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”输出: true示例 2:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”输出: false实现代码class Solution {public: bool isInterleave(string s1, st原创 2020-07-18 12:19:54 · 218 阅读 · 0 评论 -
Leetcode---740. 删除与获得点数---动态规划
740. 删除与获得点数给定一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入: nums = [3, 4, 2]输出: 6解释:删除 4 来获得 4 个点数,因此 3 也被删除。之后,删除 2 来获得 2 个点数。总共获得 6 个点数。示例 2原创 2020-07-17 12:04:34 · 170 阅读 · 0 评论 -
蓝桥杯---算法训练---2的次幂表示---递归
算法训练 2的次幂表示资源限制时间限制:1.0s 内存限制:512.0MB问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=27+23+2^0 现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=22+2+20原创 2020-07-16 17:10:42 · 128 阅读 · 0 评论 -
Leetcode---174. 地下城游戏---每日一题---动态规划
174. 地下城游戏一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则原创 2020-07-12 13:30:22 · 244 阅读 · 0 评论 -
Leetcode---309. 最佳买卖股票时机含冷冻期---每日一题---动态规划
309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]思路分为三个路线推出状态转移方程:持股状原创 2020-07-10 11:19:49 · 260 阅读 · 0 评论 -
Leetcode---面试题 17.13. 恢复空格---每日一题---动态规划+字典树
面试题 17.13. 恢复空格哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!“已经变成了"iresetthecomputeritstilldidntboot”。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符数。注意原创 2020-07-09 13:20:54 · 197 阅读 · 0 评论 -
Leetcode---63. 不同路径 II---每日一题---动态规划
63. 不同路径 II一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[0,0,0],[0,1,0],[0,0,0]]输出: 2解释:3x3 网格的正中间有一个障碍原创 2020-07-06 22:28:50 · 260 阅读 · 0 评论 -
Leetcode---718. 最长重复子数组---每日一题---动态规划
最长重复子数组给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例 1:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出: 3解释:长度最长的公共子数组是 [3, 2, 1]。说明:1 <= len(A), len(B) <= 10000 <= A[i], B[i] < 100...原创 2020-07-01 10:00:11 · 112 阅读 · 0 评论 -
UVA11584---区间DP
传送门实现代码#include<iostream>#include<cstring>using namespace std;const int maxn = 1e3;const int inf = 0x3f3f3f3f;bool isPaline[maxn][maxn];int cnt[maxn];int count(string str) { in...原创 2020-04-13 21:49:11 · 167 阅读 · 0 评论 -
Leetcode---1406. 石子游戏 III---博弈问题(动态规划)
1406. 石子游戏 IIIAlice 和 Bob 用几堆石子在做游戏。几堆石子排成一行,每堆石子都对应一个得分,由数组 stoneValue 给出。Alice 和 Bob 轮流取石子,Alice 总是先开始。在每个玩家的回合中,该玩家可以拿走剩下石子中的的前 1、2 或 3 堆石子 。比赛一直持续到所有石头都被拿走。每个玩家的最终得分为他所拿到的每堆石子的对应得分之和。每个玩家的初始分数都...原创 2020-04-11 14:48:11 · 378 阅读 · 0 评论 -
洛谷---P1006 传纸条---三维DP
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个 mmm 行 nnn 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标 (1,1)(1,1)(1,1),小轩坐在矩阵的右下角,坐标 (m,n)(m,n)(m,n)...原创 2020-04-09 12:32:31 · 213 阅读 · 0 评论 -
蓝桥杯---Sharing Chocolate---状压+记忆化
试题 算法提高 Sharing Chocolate资源限制 时间限制:1.0s 内存限制:128.0MB问题描述 每天,巧克力在它的许多形式上被全世界数百万人分享。它是一个真正普遍的糖果,实际上在世界上每个国家都能得到。 你发现唯一比吃巧克力更好的事情是把它分享给朋友。不幸的是,你的朋友非常挑剔,有着不同的胃口:有的喜欢让你提供较多的巧克力,而其他的喜欢让你提供较少的巧克力。你...原创 2020-03-15 13:10:39 · 369 阅读 · 0 评论 -
洛谷---P2622 关灯问题II---状压DP+SPFA
题目描述 现有n盏灯,以及m个按钮。每个按钮可以同时控制这n盏灯——按下了第i个按钮,对于所有的灯都有一个效果。按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时候,把它关上,否则不管;如果为-1的话,如果这盏灯是关的,那么把它打开,否则也不管;如果是0,无论这灯是否开,都不管。 现在这些灯都是开的,给出所有开关对所有灯的控制效果,求问最少要按几下...原创 2020-03-14 23:20:01 · 154 阅读 · 0 评论 -
蓝桥杯---Cowboys---DP
试题 算法训练 Cowboys资源限制 时间限制:2.0s 内存限制:256.0MB问题描述 一个间不容发的时刻:n个牛仔站立于一个环中,并且每个牛仔都用左轮手枪指着他旁边的人!每个牛仔指着他顺时针或者逆时针方向上的相邻的人。正如很多西部片那样,在这一刻,绳命是入刺的不可惜……对峙的场景每秒都在变化。每秒钟牛仔们都会分析局势,当一对相邻的牛仔发现他们正在互指的时候,就会转过身。一秒...原创 2020-03-13 20:37:43 · 235 阅读 · 0 评论 -
蓝桥杯---Castles---树形DP(含 BUG)
试题 算法训练 Castles资源限制时间限制:1.0s 内存限制:256.0MB问题描述战争在世界历史中扮演了重要角色。与现代战争不同,中世纪的军队主要忙于夺取和控制贵族的私有设防住宅——城堡。一个进攻军队的规模是军队夺取和控制这些建筑杰作的能力的重要影响因素。夺取城堡会使用最少需要的士兵数量。一些士兵在进攻中会死去。夺取城堡后,一些士兵被要求留在城堡里防卫其他军队的进攻。当然,留...原创 2020-03-08 17:49:38 · 419 阅读 · 0 评论 -
蓝桥杯---概率计算---概率DP
试题 算法提高 概率计算资源限制 时间限制:1.0s 内存限制:256.0MB问题描述 生成n个∈[a,b]的随机整数,输出它们的和为x的概率。输入格式 一行输入四个整数依次为n,a,b,x,用空格分隔。输出格式 输出一行包含一个小数位和为x的概率,小数点后保留四位小数样例输入2 1 3 4样例输出0.3333数据规模和约定 对于50%的数据,n≤5....原创 2020-03-02 21:13:38 · 353 阅读 · 0 评论 -
统计单词个数---蓝桥杯---C++---动态规划
问题描述给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份 (1输入第一行有二个正整数(p,k) p表示字串的行数; k表示分为k个部分。 接下来的p行,每行均有20个字符。 再接下来有一个正整数s,表示字典中单词个数。(1<=s<=6)接下来的s行,每行均有一个单词。输出每行一个整数...原创 2020-01-29 19:26:22 · 1423 阅读 · 0 评论 -
蓝桥杯---结点选择---链式前向星----树形dp
结点选择问题描述有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?输入第一行包含一个整数 n 。 接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。 接下来一共 n-1 行,每行描述树上的一条边。输出输出一个整数,代表选出的点的权值和的最大值。输入例子 151 2 ...原创 2019-10-23 16:57:29 · 288 阅读 · 0 评论 -
CCF---201312-4---有趣的数---C++
试题编号: 201312-4试题名称: 有趣的数时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。 3. 最高位数字不为0。 因此,符合我们定义的最小的有趣的数是2013。除此...原创 2019-10-21 19:09:53 · 321 阅读 · 0 评论 -
P1049 装箱问题----动态规划----背包问题
题目描述有一个箱子容量为VV(正整数,0 \le V \le 200000≤V≤20000),同时有nn个物品(0<n \le 300<n≤30,每个物品有一个体积(正整数)。要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入格式11个整数,表示箱子容量11个整数,表示有nn个物品接下来nn行,分别表示这nn个物品的各自体积输出格式11个整数,表示箱子剩...原创 2019-09-27 16:49:25 · 558 阅读 · 0 评论 -
洛谷 P1880 [NOI1995]石子合并 ----环形区间dp
题目描述在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入格式数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输出格式输出共2行,第1行为最小得分,第2行为最大得分.输入输...原创 2019-09-25 19:51:46 · 341 阅读 · 1 评论