
动态规划
Viscu
勤能补拙。
展开
-
POJ3252:Round Numbers(数位DP)
odd-even numberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 943 Accepted Submission(s): 504Problem DescriptionFor a number,if the length原创 2017-02-06 00:03:59 · 310 阅读 · 0 评论 -
CodeForces 55D Beautiful numbers(数位dp)
Volodya is an odd boy and his taste is strange as well. It seems to him that a positive integer number is beautiful if and only if it is divisible by each of its nonzero digits. We will not argue with原创 2017-01-21 00:12:48 · 415 阅读 · 0 评论 -
BZOJ1026: [SCOI2009]windy数(数位dp)
Description windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?Input 包含两个整数,A B。Output 一个整数Sample Input【输入样例一】1 10【输入样例二】25 50Sample Output【输出样例一】9【输原创 2017-02-04 00:32:05 · 349 阅读 · 0 评论 -
51NOD最长公共子序列Lcs(动态规划+打印路径)
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为:abcicbaabdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。Input第1行:字符串A第2行:字符串B(A,B的长度 <= 1000)Output输出最长的子序列,如果有多个,随意输出1个。Input示例abcicbaabdkscab原创 2017-03-30 16:41:25 · 465 阅读 · 0 评论 -
51nod 1183 编辑距离(动态规划)
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k->s)sittin (e->i)原创 2017-04-18 21:06:01 · 496 阅读 · 0 评论 -
动态规划合集
最长有效括号给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: &amp;amp;amp;amp;quot;(()&amp;amp;amp;amp;quot;输出: 2解释: 最长有效括号子串为 &amp;amp;amp;amp;quot;()&amp;amp;amp;amp;quot;示例 2:输入: &amp;amp;amp;amp;quot;)()())&am原创 2018-08-31 13:40:48 · 303 阅读 · 0 评论 -
leetcode 122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票...原创 2018-09-03 12:26:34 · 301 阅读 · 0 评论 -
leetcode 123. 买卖股票的最佳时机 III
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [3,3,5,0,0,3,1,4] 输出: 6 解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 =...原创 2018-09-03 14:15:07 · 838 阅读 · 0 评论 -
188. 买卖股票的最佳时机 IV
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [2,4,1], k = 2 输出: 2 解释: 在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 =...原创 2018-09-03 15:31:59 · 447 阅读 · 0 评论 -
714. 买卖股票的最佳时机含手续费
买卖股票的最佳时机含手续费 题目描述提示帮助提交记录社区讨论阅读解答 随机一题 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最大值。 ...原创 2018-09-03 18:22:57 · 1241 阅读 · 0 评论 -
309. 最佳买卖股票时机含冷冻期
给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。 示例: 输入: [1,2,3,0,2] 输出: 3 ...原创 2018-09-03 20:04:26 · 617 阅读 · 0 评论 -
354. 俄罗斯套娃信封问题
给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。 说明: 不允许旋转信封。 示例: 输入: envelopes = [[5,4],[6,4],[...原创 2018-09-03 20:24:54 · 554 阅读 · 0 评论 -
51nod 1021 石子归并 区间dp 记忆化搜索
N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。 例如: 1 2 3 4,有不少合并方法 1 2 3 4 => 3 3 4(3) => 6 4(9) => 10(19) 1 2 3 4 => 1 5 4(5) => 1 9(1...原创 2018-09-06 15:35:40 · 259 阅读 · 0 评论 -
HDU5898 odd-even number(数位dp)
odd-even numberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 943 Accepted Submission(s): 504Problem DescriptionFor a number,if the length原创 2017-02-05 00:24:56 · 425 阅读 · 0 评论 -
HDU3652 B-number(数位dp 深搜版本)
B-numberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5467 Accepted Submission(s): 3147Problem DescriptionA wqb-number, or B-number for s原创 2016-12-16 00:48:00 · 429 阅读 · 0 评论 -
威威猫系列故事——打地鼠
Problem Description 威威猫最近不务正业,每天沉迷于游戏“打地鼠”。 每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作! 无话可说... 我们知道,打地鼠是一款经典小游戏,规则很简单:每隔一个时间段就会从地下冒出一只或多只地鼠,玩游戏的人要做的就是打地鼠。 假设: 1、每一个时刻我们只能打一原创 2016-07-24 19:53:40 · 625 阅读 · 0 评论 -
51nod 整数分解为2的幂
任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果。比如N = 7时,共有6种划分方法。7=1+1+1+1+1+1+1=1+1+1+1+1+2=1+1+1+2+2=1+2+2+2=1+1+1+4=1+2+4Input输入一个数N(1 Output输出划分方法的数量Mod 1000原创 2016-08-18 01:45:54 · 461 阅读 · 0 评论 -
51nod数字0-9的数量(数位dp)
给出一段区间a-b,统计这个区间内0-9出现的次数。比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次。Input两个数a,b(1 <= a <= b <= 10^18)Output输出共10行,分别是0-9出现的次数Input示例10 19Output示例11111111111好想原创 2016-10-11 00:28:32 · 436 阅读 · 0 评论 -
NYOJ 石子合并 (区间DP)
石子合并(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。输入有多组测试数据,输入到文件结束。每组测试数据第一行有一个整数n,表示有n堆石子。接下来的一行原创 2016-09-26 23:19:38 · 500 阅读 · 0 评论 -
51NOD 背包问题v2(动态规划)
有N种物品,每种物品的数量为C1,C2......Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi为整数)。求背包能够容纳的最大价值。Input第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1 <= N <= 100,1 <= W <= 50000)第2 - N +原创 2016-10-23 14:30:18 · 446 阅读 · 0 评论 -
51nod 非010串(dp找规律+矩阵快速幂)
如果一个01字符串满足不存在010这样的子串,那么称它为非010串。求长度为n的非010串的个数。(对1e9+7取模)Input一个数n,表示长度。(n<1e15)Output长度为n的非010串的个数。(对1e9+7取模)Input示例3Output示例7解释:000001011100101110111首先dp打表找个规律:dp[i][0] = dp[i-1][0原创 2016-09-26 12:14:30 · 1045 阅读 · 0 评论 -
HDU 3555 Bomb(数位DP)
BombTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 15793 Accepted Submission(s): 5754Problem DescriptionThe counter-terrorists found a ti原创 2016-09-29 20:44:22 · 535 阅读 · 0 评论 -
51nod 数字1的数量(数位DP)
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。Input输入N(1 <= N <= 10^9)Output输出包含1的个数Input示例12Output示例5用一个2维数组表示从1~以为j开头的有i位数的数字有多少个1.状态转移方程就是:j=1: dp[原创 2016-10-07 00:46:34 · 583 阅读 · 4 评论 -
HDU2089 不要62(数位dp)
不要62Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 35781 Accepted Submission(s): 13042Problem Description杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。杭州交通管原创 2016-10-08 00:16:56 · 288 阅读 · 0 评论 -
HDU1003 Max Sum(DP)
Max SumTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 228524 Accepted Submission(s): 53767Problem DescriptionGiven a sequence a[1],a[2],a[原创 2016-12-12 16:08:52 · 339 阅读 · 0 评论 -
HDU 3555 Bomb(数位dp 深搜版)
BombTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 15793 Accepted Submission(s): 5754Problem DescriptionThe counter-terrorists found a ti原创 2016-12-15 19:20:28 · 376 阅读 · 0 评论 -
HDU 不要62(数位dp 深搜版本)
不要62Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 37571 Accepted Submission(s): 13615Problem Description杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。杭州交通管原创 2016-12-15 21:56:26 · 519 阅读 · 0 评论 -
leetcode 87. 扰乱字符串 区间dp
给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。下图是字符串 s1 = "great" 的一种可能的表示形式。 great / \ gr eat / \ / \g r e at / \ a t在扰乱这个字符串的过程中,我们可以挑选任何一个非叶节点,然后交换它的...原创 2018-09-06 19:23:35 · 378 阅读 · 0 评论