/* dp[i]=0|1 表示前i是否可以被成功分组, dp[i+1]能够变成1的三个条件 1:j∈[0,i-k]里存在dp[j]=1 2:dp[j]=1 3:a[i+1]-a[j+1] using namespace std; #define maxn 5000005 int d,dp[maxn]... ...
分类:
编程语言 时间:
2019-07-11 12:27:16
阅读次数:
141
本题大意:给定多个矩形的长和宽,让你判断最多能有几个矩形可以嵌套在一起,嵌套的条件为长和宽分别都小于另一个矩形的长和宽。 本题思路:其实这道题和之前做过的一道模版题数字三角形很相似,大体思路都一致,这道题是很经典的DAG上的最长路问题,用dp[ i ]表示以i为出发点的最长路的长度,因为每一步都只能 ...
分类:
其他好文 时间:
2019-03-26 13:12:01
阅读次数:
189
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. Example: ...
分类:
其他好文 时间:
2019-02-18 18:42:41
阅读次数:
152
矩形嵌套时间限制:3000 ms | 内存限制:65535 KB 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的 ...
分类:
其他好文 时间:
2019-02-17 00:33:33
阅读次数:
168
经典DP题目,比较复杂,需要多复习。 dp[i][j] 表示 s 下标0~i,p 下标0~j 是否能够匹配 dp[i-1][j-1] s[i]==p[j] || p[j]=='.' dp[i][j] = dp[i][j-2] p[j]=='*', 0 occurence dp[i-1][j] p[j ...
分类:
其他好文 时间:
2018-09-27 10:36:11
阅读次数:
131
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 经典DP练习题,自己的水平有限,参考了网上其他的答案。 01背包问题,如何选择背包容量和物品的价值在这里是比较困难的地方,把银行的钱当做背包,把概率当做价值,总容量为所有银行的总钱数,求不超过被抓 ...
分类:
其他好文 时间:
2018-09-05 13:54:14
阅读次数:
173
问题1:找硬币,换钱的方法 输入: penny数组代表所有货币的面值,正数不重复 aim小于等于1000,代表要找的钱 输出:换钱的方法总数 解法1:经典dp,空间复杂度O(n*aim) 解法2:与上面的问题一样,只不过在求dp时只使用1维数组来做;使用迭代,时间复杂度一样: 问题2:跳台阶问题: ...
分类:
编程语言 时间:
2018-07-04 21:06:36
阅读次数:
300
1 . 青蛙爬楼梯 ,经典 DP 问题,改变 就是不能连续跳 所以 dp[i] =dp[i-1]+dp[i-3]; 神奇 的默认输入方式 #include<bits/stdc++.h> using namespace std; #define LOACL freopen("in","r",stdin ...
分类:
其他好文 时间:
2018-04-27 21:10:59
阅读次数:
153
【题意】给定n个人的ai和bi,表示第i个人能力值为ai且不能和bi同时选择,求能力值和最大的选择方案。n<=10^6。 【算法】环套树DP(基环树) 【题解】n个点n条边——基环森林(若干环套树子图)。 若原图是树,经典DP做法:f[i][0/1]表示i点选或不选的最大能力值和,则f[i][0]= ...
分类:
其他好文 时间:
2018-01-17 13:53:05
阅读次数:
146
题意 : 有 n 种蚂蚁,第 i 种蚂蚁有ai个,一共有 A 个蚂蚁。不同类别的蚂蚁可以相互区分,但同种类别的蚂蚁不能相互区别。从这些蚂蚁中分别取出S,S+1...B个,一共有多少种取法。 分析 : 实际就是要解决 => 从 n 种物品中取出 m 个有多少种取法 ( 同种无法区分 ) 计数问题的 D ...
分类:
其他好文 时间:
2017-12-29 15:04:40
阅读次数:
146