
DP
文章平均质量分 91
DP
feng_zhiyu
这个作者很懒,什么都没留下…
展开
-
279. Perfect Squares
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.Example 1:Input: n = 12Output: 3 Explanation: 12 = 4 + 4 + 4.Example...原创 2018-10-13 14:56:37 · 557 阅读 · 0 评论 -
198. House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent house...原创 2018-10-13 14:55:42 · 303 阅读 · 0 评论 -
【剑指Offer】连续子数组的最大和
题目链接题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的...原创 2018-08-28 12:01:39 · 294 阅读 · 0 评论 -
【PAT甲级】1045 Favorite Color Stripe(30 分)(LCS转化为LIS)
题目链接Eva is trying to make her own color stripe out of a given one. She would like to keep only her favorite colors in her favorite order by cutting off those unwanted pieces and sewing the remaining...原创 2018-08-24 14:36:53 · 504 阅读 · 0 评论 -
(UVA - 10635)Prince and Princess (LCS变形为LIS,DP)
链接: https://vjudge.net/problem/UVA-10635 题意:有长度为p+1,q+1(1<=p,q<=n^2)的序列,序列元素为[1,n^2](2<=n<=250),并且都不相同,两个序列的第一个元素都是1.求出两个序列的最长公共子序列的长度。分析:n的范围不大,并且序列中的数最多只能出现一次,那么可以把第一个序列的元素对应的下标记下,在第二个序列中若输入的数在第一个序列原创 2017-08-22 10:37:28 · 445 阅读 · 0 评论 -
数塔(DP练习)
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目,你能AC吗? Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有原创 2017-08-20 19:14:23 · 1831 阅读 · 0 评论 -
(hdu 1579)Function Run Fun (记忆化搜索)
We all love recursion! Don’t we? Consider a three-parameter recursive function w(a, b, c): if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns: 1 if a > 20 or b > 20 or c > 20, then w(a, b, c) r原创 2017-08-19 12:18:48 · 405 阅读 · 0 评论 -
(UVA - 11400)Lighting System Design(DP)
链接: https://vjudge.net/problem/UVA-11400分析:先按电压从小到大排序,预处理求出1到i的数量和s[i],然后设dp[i] : 灯泡1到i的最小费用 状态转移方程: dp[0]=0; dp[i]=min(dp[i],dp[j]+p[i].c*(s[i]-s[j])+p[i].k),j#inclu原创 2017-08-15 08:41:18 · 414 阅读 · 0 评论 -
(UVA - 116)Unidirectional TSP(DP,多段图的最短路问题)
链接 : https://vjudge.net/problem/UVA-116题意:给定m行n列(m<=10,n<=100)的整数矩阵,从第一列的任何一个位置出发每次往右或右上或右下走一格,最终到达最后一列。要求经过的整数之和最小。整个矩阵是环形的,即 第一行的上一行是最后一行,最后一行 的下一行是第一行。输出路径上的每列的行号。多解时输出字典序最小的。分析:题目是紫书上的,P270. LRJ大神原创 2017-08-14 16:50:05 · 433 阅读 · 0 评论 -
(UVA - 12034)Race(组合数,dp)
链接: https://vjudge.net/problem/UVA-12034题意:A,B两个人赛马,最终名次有3种可能:并列第一;A第一,B第二;B第一A第二 现在n个人赛马,问最终名次的可能情况的个数对10056取模分析:设答案为f(n),假设第一名有i个人,有C(n,i)种可能性,接下来有f(n-i)种可能性,答案为所有的i(1<=i<=n) C(n,i)*f(n-i)f(0)=1 可以原创 2017-08-13 19:08:01 · 787 阅读 · 0 评论 -
(hnust 1050)巧克力(DP)
时间限制: 1 Sec 内存限制: 128 MB 提交: 7 解决: 4 [提交][状态][讨论版] 题目描述 布欧可以把人变成巧克力吃了来增加他的能量,也有可能减少。 现在布欧变了n*m个巧克力,并把巧克力排成一个n*m的矩形,现在布欧想选择一个子矩形,把这个子矩形吃了来增加他的能量,可他不知道选哪个才能使他的能量增加值p最大,布欧也可以选择一个都不吃,这样p = 0。 现在布欧要原创 2017-08-08 13:55:02 · 514 阅读 · 0 评论 -
(UVALive - 7722)L - Tale of a Happy Man(DP)
Windarik is a happy man who seeks only happiness in his life. Even when he’s working, he consciously chooses tasks which make him happy. There are N agencies, and each agency offers zero or more task原创 2017-08-05 10:16:26 · 535 阅读 · 0 评论 -
(HDU - 1159) Common Subsequence(DP)
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X原创 2017-08-02 11:13:02 · 346 阅读 · 0 评论 -
(HDU - 1160)FatMouse's Speed(DP)
Time limit1000 msMemory limit32768 kBOSWindowsFatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want to take the data on a collection of mice and put as large a su原创 2017-08-02 09:46:26 · 485 阅读 · 0 评论 -
(SPOJ - ELIS )Easy Longest Increasing Subsequence(DP)
Time limit1948 msMemory limit1572864 kBCode length Limit50000 BGiven a list of numbers A output the length of the longest increasing subsequence. An increasing subsequence is defined as a set {i0 , i1原创 2017-08-02 09:23:02 · 465 阅读 · 0 评论 -
(UESTC - 1006)最长上升子序列(DP,输出子序列的元素)
Time limit1000 ms Memory limit65535 kB 一个数的序列B=(b1,b2,⋯,bS)B=(b1,b2,⋯,bS),当b1<b2<⋯<bSb1<b2<⋯<bS 的时候,我们称这个序列是上升的。对于给定的一个序列A=(a1,a2,⋯,aN)A=(a1,a2,⋯,aN),我们可以得到一些上升的子序列(ai1,ai2,⋯,aiK)(ai1,ai2,⋯,aiK)原创 2017-07-31 10:53:37 · 1468 阅读 · 0 评论 -
骨牌问题(DP+矩阵快速幂)
在2*N的一个长方形方格中,用一个1*2的骨牌排满方格。 问有多少种不同的排列方法。例如:2 * 3的方格,共有3种不同的排法。(由于方案的数量巨大,只输出 Mod 10^9 + 7 的结果) Input 输入N(N <= 1000) Output 输出数量 Mod 10^9 + 7 Sample Input 3 Sample Output 3分析:从N小的时候入手,比如N=2原创 2017-07-30 17:48:12 · 1539 阅读 · 0 评论 -
(Kattis - palindromic )G - Palindromic Naming(DP)(补)
Time limit5000 ms Memory limit1048576 kB OSLinux Yraglac is expecting to have a child in the near future. Being a mathematically-minded person, he would like his child’s name to be a pali原创 2017-07-30 16:13:23 · 765 阅读 · 0 评论 -
(hdu1257)最少拦截系统(DP)
ime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 43418 Accepted Submission(s): 16928Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有原创 2017-07-30 10:47:43 · 355 阅读 · 0 评论 -
(hdu2084)数塔(DP)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 45418 Accepted Submission(s): 26965Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下原创 2017-07-30 10:22:55 · 402 阅读 · 0 评论 -
Zipper(DFS,DP)
Problem Description Given three strings, you are to determine whether the third string can be formed by combining the characters in the first two strings. The first two strings can be mixed arbitraril原创 2017-07-20 19:11:10 · 403 阅读 · 0 评论 -
【PAT甲级】1040 Longest Symmetric String (25)(Manacher)
题目链接Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given "Is PAT&TAP symmetric?", the longest symmetric sub-string is "s PAT&TAP s", ...原创 2018-07-29 20:52:55 · 352 阅读 · 0 评论 -
【剑指Offer】跳台阶(DP)
题目链接题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:根据题意分析,对于n>2,每一阶有2种跳法,所以f(n)=f(n-1)+f(n-2),n>2,这不就是斐波那契数列吗,所以直接写。分析请见:【剑指Offer】斐波那契数列(递归,DP)。ps:输出不同。代码:class Solution {public: int j...原创 2018-07-02 15:55:34 · 472 阅读 · 0 评论 -
【剑指Offer】斐波那契数列(递归,DP)
题目链接题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39思路:这是一个众所周知的问题,第一想法是什么?递归,迭代,矩阵快速幂,动规?有很多解法,这里给出两种的。递归和动规。 在讨论区中看到大佬写的动规。资源消耗很少。矩阵快速幂理论上更快。资源消耗:739 ms472K代码【递归版】:class Solution {public: in...原创 2018-07-02 15:46:33 · 804 阅读 · 0 评论 -
【金马五校赛 】L. K序列
链接:https://www.nowcoder.com/acm/contest/91/L 来源:牛客网时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”。现在要你 对数组 a 求出最长...原创 2018-04-16 23:22:21 · 357 阅读 · 0 评论 -
【历届试题 波动数列 】(01背包,滚动数组)
时间限制:1.0s 内存限制:256.0MB问题描述 观察这个数列: 1 3 0 2 -1 1 -2 … 这个数列中后一项总是比前一项增加2或者减少3。 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢? 输入格式 输入的第一行包含四个整数 n s a b,含义如前面说述。 输出格式 ...原创 2018-03-04 10:32:55 · 667 阅读 · 0 评论 -
算法训练 K好数(dp)
时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式 输入原创 2018-01-11 20:18:57 · 442 阅读 · 0 评论 -
石子合并问题(dp)
转自:http://blog.youkuaiyun.com/acdreamers/article/details/18039073石子合并问题是最经典的DP问题。首先它有如下3种题型:(1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆的总花费最小(或最大)。分析:当然这种情况是最简单的情况,合并的是任意转载 2018-01-11 19:19:04 · 508 阅读 · 0 评论 -
算法提高 合并石子(区间dp,四边形不等式优化)
时间限制:2.0s 内存限制:256.0MB 提交此题 问题描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。 输入格式 输入第一行包含一个整数n,表示石子的堆数。 接下来一行,包含n个整数,按顺序给出每堆石子的大小 。 输出格式 输出一个整数,表原创 2018-01-11 19:08:24 · 739 阅读 · 0 评论 -
hnust 1714种草莓(dp)
传送门:http://acm.hnust.edu.cn/JudgeOnline/problem.php?cid=1436&pid=6题目描述小美有一块N*N的正方形菜地,寒暑交替,冬去春来,现在到了可以种植草莓的季节了。遗憾的是,有些格子已经种上别的蔬菜了。小美希望在菜地中找到最大的一块正方形空地来种草莓,以满足她大吃草莓的愿望。 输入 第一行是一个整数T(1<=T<=100),表示测试数据的组原创 2017-12-10 23:40:02 · 1085 阅读 · 0 评论 -
(UVA - 10534) Wavio Sequence (LIS)
链接: https://vjudge.net/problem/UVA-10534题意:给定一个长度为n的整数序列,求一个最长序列,似的该序列的长度为奇数,前一半严格递增,后一半严格递减。(n<=10^4) 分析:转化为LIS问题,用cnt1,cnt2两个数组分别记录对应位置的最长上升子序列,求出两个数组最小的最大值,输出2*ans-1 复杂度:O(nlogn)#include <cstdio>原创 2017-08-23 11:25:05 · 532 阅读 · 0 评论 -
最长上升子序列(LIS)(DP练习)
G - 最长上升子序列(LIS) Easy Time limit2000 msMemory limit65536 kBOSLinuxA numeric sequence of ai is ordered if a1 < a2 < … < aN. Let the subsequence of the given numeric sequence ( a1, a2, …, aN) be any sequ原创 2017-08-20 20:35:31 · 1121 阅读 · 0 评论 -
(UVA - 11584) Partitioning by Palindromes(DP,划分的最小回文串个数)
链接: https://vjudge.net/problem/UVA-11584分析:设dp[i]为1-i个字符划分成的最小回文串的个数, 状态转移方程:dp[i]=min(dp[i],dp[j-1]+1), 第j到第i个字符为回文串 dp[0]=0; 其余初始化为INF每次输入从字符串数组的第二个位置str[1]原创 2017-08-15 09:11:21 · 426 阅读 · 0 评论 -
(poj1157)LITTLE SHOP OF FLOWERS(DP)
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21682 Accepted: 10022 DescriptionYou want to arrange the window of your flower shop in a most pleasant way. You have F bunches o原创 2017-07-30 09:51:13 · 443 阅读 · 0 评论