DP
Z-Pilgrim
这个作者很懒,什么都没留下…
展开
-
*Leetcode 72 编辑距离
dp原创 2023-01-25 22:54:30 · 58 阅读 · 0 评论 -
*leetcode 343. 整数拆分 & 剑指offer 14
leetcode 343. 整数拆分 & 剑指offer 14剑指offer的代码感觉定义dp方程不清晰 此处重新写 一下原创 2022-12-27 02:21:04 · 64 阅读 · 0 评论 -
Leetcode 139. Word Break | DP
https://leetcode.com/problems/word-break/description/没啥说的把,dp[i] = dp[k] & substr(k~i)在dict里面class Solution {public: bool wordBreak(string s, vector& wordDict) { unordered_set di原创 2018-01-11 19:36:05 · 203 阅读 · 1 评论 -
***Leetcode 188. Best Time to Buy and Sell Stock IV | dp
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/description/请教了一个ACM金的好基友... dp还是一直太弱思路:dp[i][j][0]表示前i天,进行j次买和j次卖,也就是进行了完整的j次交易dp[i][j][1]表示前i天,进行j次买和j-i次卖那么dp[i][j][1] = max( dp[i-1...原创 2018-02-28 20:54:34 · 139 阅读 · 0 评论 -
**Leetcode 221. Maximal Square | dp
https://leetcode.com/problems/maximal-square/description/参考了这里的写法http://blog.csdn.net/u012501459/article/details/46553139最暴力的想法还是蛮容易想到的,但是还是上面写的好点class Solution {public: int maximalSquare(vector&...原创 2018-02-28 22:10:03 · 119 阅读 · 0 评论 -
** Leetcode 264. Ugly Number II | dp
https://leetcode.com/problems/ugly-number-ii/description/leetcode的题的代码总是能让人感觉原来可以写的这么简洁参考了这里:https://leetcode.com/problems/ugly-number-ii/discuss/69364/My-16ms-C++-DP-solution-with-short-explanation思路...原创 2018-02-28 22:38:52 · 149 阅读 · 0 评论 -
*790. Domino and Tromino Tiling
https://leetcode.com/problems/domino-and-tromino-tiling/description/动手画画图,dp的方程应该不难想。(注意总结case数目这种,一定考虑怎么把Case归类,防止多次计数)。直接按dp方程写就是:class Solution {public: int numTilings(int N) { long lo...原创 2018-03-08 23:16:35 · 287 阅读 · 0 评论 -
**Leetcode 279. Perfect Squares | dp
https://leetcode.com/problems/perfect-squares/description/看到dp题先想递推公式啊,这个题的递推公式还是很容易想的dp[i] = min(dp[i - j * j] ) + 1j * j <= iclass Solution {public: int numSquares(int n) { int dp[n ...原创 2018-03-01 00:44:39 · 131 阅读 · 0 评论 -
**Leetcode 134. Gas Station
https://leetcode.com/problems/gas-station/description/两个结论还是很容易猜到的:(1) sum(gas[i] - cost[i]) >=0的时候才能跑完(2)假设最小的sum(gas[i] - cost[i])位置是k,那么应该把k+1作为起点(3)我不是从(2)的角度考虑的 我是从最大子段和的角度考虑,具有最大子段和的位置应该作为起点。...原创 2018-03-02 23:14:29 · 148 阅读 · 0 评论 -
***Leetcode 312. Burst Balloons
https://leetcode.com/problems/burst-balloons/description/果然一碰到hard的dp就跪...这里有个很好的思考问题过程 https://leetcode.com/problems/burst-balloons/discuss/76228/Share-some-analysis-and-explanations首先是尝试想暴力,然后看到底是哪里...原创 2018-03-04 23:12:52 · 197 阅读 · 0 评论 -
*Leetcode 322. Coin Change
https://leetcode.com/problems/coin-change/description/比较常规的一道dp了唯一需要注意的就是 没办法得到解的判断,最初我写的return dp[amount] >= INT_MAX-amount ? -1:dp[amount];class Solution {public: int coinChange(vector<in...原创 2018-03-04 23:38:21 · 158 阅读 · 0 评论 -
**Leetcode 787. Cheapest Flights Within K Stops | dp
https://leetcode.com/problems/cheapest-flights-within-k-stops/description/一开始写的不是n方的dp 然后感觉自己应该是错了。。。剪枝+搜索:struct Node { string path; int cnt; int cost; Node(string path, int cnt, int ...原创 2018-03-06 01:47:52 · 615 阅读 · 0 评论 -
** Leetcode 188. Best Time to Buy and Sell Stock IV | dp
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/description/感觉跟https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/description/这个有点像 DP方程 class Solution...原创 2018-04-30 21:32:03 · 148 阅读 · 0 评论 -
合法括号配对的个数 | dp
网上看到的一个笔试题一个合法的表达式由()包围,()可以嵌套和连接,如(())()也是合法 表达式;现在有 6 对(),它们可以组成的合法表达式的个数为____dp[i][j]表示,长度为i的表达式,左括号比右括号多j个的情况数。那么Ans=dp[n][0]#include <iostream>#include <cstring>#include <cstdio&...原创 2018-05-04 18:43:40 · 2171 阅读 · 0 评论 -
*Leetcode 813. Largest Sum of Averages | dp
https://leetcode.com/problems/largest-sum-of-averages/description/意外竟然可以n^2*k A掉。。。class Solution {public: double largestSumOfAverages(vector<int>& A, int K) { int n = A.size();...原创 2018-05-08 02:58:06 · 447 阅读 · 0 评论 -
*Leetcode 131. Palindrome Partitioning DFS/DP
https://leetcode.com/problems/palindrome-partitioning/description/随手写了个DFS 1A了,但是dp的思路还是值得学习的。以前没试过dp来做枚举答案的做法。DFS的解法:class Solution {public: vector > partition(string s) { vector原创 2018-01-11 00:43:07 · 313 阅读 · 0 评论 -
Leetcode 403. Frog Jump
https://leetcode.com/problems/frog-jump/想到需要使用set的时候,就准备放弃了,因为当时觉得用Set时间复杂度马上上去,,,然后被科普了,,unordered_set和unordered_map是O(1)的因为是hash实现的。那么题目就没有难度了。dp[i]存所有可以从i走的步长遍历dp[j]更新dp[i]即可。需要注意的一点,原创 2017-01-10 20:48:06 · 358 阅读 · 0 评论 -
HDU 1421 DP
还是这种思想:dp[i][j]表示前i件物品取j对的最优解那么想想dp[i][j]是怎么来的,(1)i==j*2 dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1])(2)i>j*2 dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]))注意long long原创 2013-09-13 01:32:14 · 2630 阅读 · 0 评论 -
HDU 1978 DP水题一枚
http://acm.hdu.edu.cn/showproblem.php?pid=1978水题一枚,可惜,因为忘记判断是否越界WA了好几次。思路:DP的高效在于,可以利用前面的结果,或者说其实有点递推的意思,如斐波那契数列 f[4]=f[3]+f[2],f[3]和f[2]都是以前算出来过的,所以只进行一次计算就算出了f[4],而不是从头算f[3]=f[1]+f[2];f[4]=f[3]+原创 2014-02-18 19:25:15 · 1257 阅读 · 0 评论 -
poj 3276 反转开关问题(一) DP+模拟
http://poj.org/problem?id=3276题意:n头牛,F表示朝前,B表示朝后,每次可以让连续的k头牛变换方向,要使所有的牛都朝前,求最小的转向次数及此时的kSample Input7BBFBFBBSample Output3 3穷举肯定是要超时的 2^n个状态...但是先思考一些规律吧:1、转动奇数次,必然与初始方向相反原创 2014-03-04 00:40:34 · 1940 阅读 · 0 评论 -
uva 1401 dp+Trie
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=4147题意:给定一个字符串,以及若干单词,求有几种方式能用单词组成字符串 我先是dp方程推得有问题不知怎么修改搞得卡了很久,然后就是数组开得太小一直REtr原创 2014-07-03 12:14:55 · 1066 阅读 · 0 评论 -
Mark一下, dp状态转移方程写对,但是写代码都错,poj 1651 poj 1179
dp题:1、写状态转移方程;2、考虑初始化边界,有意义的赋定值,还没计算的赋边界值;3、怎么写代码自底向上计算最优值今天做了几个基础dp,全部是dp方程写对但是初始化以及计算写错先是poj 1651 其实就是个赤裸裸的矩阵连乘,dp方程很容易写出 dp[i][j]=min(dp[i][k]+dp[k+1][j]+r[i]*c[k]*原创 2014-06-19 20:45:43 · 1351 阅读 · 0 评论 -
poj 3783 DP 2个鸡蛋扔100层楼的加强版
http://poj.org/problem?id=3783估计23号之后的排位赛之后我就要退役了,这之前最后再做5天ACM今天的排位很惨,上次排位也很惨......这道题原来算法课老师讲过,模模糊糊记得方程,但是边界处理有问题,dp[i][j]=min(1+max(dp[k-1][j-1],dp[i-k][j])) k=1 to 楼数dp[i][j]:i层楼扔,手里有j个ba原创 2014-08-18 18:46:59 · 1657 阅读 · 0 评论 -
hdu 4089 不错的DP 北京现场赛题
http://acm.hdu.edu.cn/showproblem.php?pid=4089还有疑惑,需要重新推:但是学到的:1、A=a+b+c abc是三种情况,那么P(A)=a*P(a->事件)+b*P(b->事件)+c*P(c->事件);a->事件意思是 在a情况下的事件,就是全概率公式的思想吧2、一定注意每一步会不会出现分母为0 的情况,以及预处理的时候对于一些特原创 2014-08-20 18:01:30 · 916 阅读 · 0 评论 -
Codeforces Round #261 (Div. 2) E. Pashmak and Graph DP
http://codeforces.com/contest/459/problem/E不明白的是我的代码为啥AC不了,我的是记录we[i]以i为结尾的点的最大权值得边,然后wa在第35 36组数据然后参考答案了,然后----网上一份题解大意: 给出一个带权有向图,求经过的边权绝对上升的最长路径(可能是非简单路径,即可能经过一个点多次)所包含的边数。题解: 对边原创 2014-08-27 23:03:23 · 1085 阅读 · 0 评论 -
Codeforces Round #267 (Div. 2) C George and Job
题目大意:从n个数中选出m段不相交的子串,子串的长度均为k,问所有选出来的子串的所有数的和最大为多少。DP题,DP还是太弱,开始时的dp方程居然写成了O(n^3)... dp[i][j]: 以num[i]结尾的序列,分成j段的最大和dp[i][j]=max(dp[k][j-1]+sum[i]-sum[i-m]) 这样的话,其实只要第一重循环是选的段数,第二重循环时数字个数原创 2014-09-23 19:21:08 · 1105 阅读 · 0 评论 -
hdu 5074 DP 2014鞍山现场赛题
hdu 5074 http://acm.hdu.edu.cn/showproblem.php?pid=5074挺水的DP,注意依a[i-1]和a[i]的正负区分状态转移,然后O(n^3)即可轻易解决,我DP挺弱的也能过,貌似也就CF C题水平//#pragma comment(linker, "/STACK:102400000,102400000")#include #include原创 2014-10-22 21:03:11 · 1244 阅读 · 0 评论 -
hdu 4472 dp
http://acm.hdu.edu.cn/showproblem.php?pid=4472第一直觉找规律,第二直觉 把树拆成子树,然后递推或者DP然后发现不行,然后才发现自己题都没读,,,,dp[i]=segma(dp[j] | (i-1)%j==0)#include #include #include const int MAXN = 1000+50;const int原创 2014-10-18 23:40:47 · 1080 阅读 · 0 评论 -
题目1389:变态跳台阶 简单DP
http://ac.jobdu.com/problem.php?pid=1389这样的题只要分类不要重复就没问题了。可以分为,第一次跳0步,也就是直接跳到终点。第一次跳1步,然后在跳f(i-1)第一次跳2步,然后在跳f(i-2)...DP我果断是弱爆了,第一次写居然把第一次跳的那个+1,想了下A了#include #include #include原创 2015-08-29 15:17:05 · 885 阅读 · 0 评论 -
LeetCode 64. Minimum Path Sum
https://leetcode.com/problems/minimum-path-sum/dp 很简单const int SIZE = 1001;class Solution {public: int minPathSum(vector >& grid) { int m = grid.size(), n=grid[0].size(); //原创 2016-01-25 22:59:26 · 309 阅读 · 0 评论 -
*LeetCode 213. House Robber II
https://leetcode.com/problems/house-robber-ii/House Robber I那道线的题不说了,直接O(n)搞定。环的开始写成O(n^2)了,就是枚举每一个起始位置,用House Robber I的做法。const int SIZE = 1000+1;int dp[SIZE][SIZE];class Solution {public:原创 2016-10-16 01:44:57 · 484 阅读 · 0 评论 -
hdu 1505 hdu 1506 hdu 2870 综合解答
1505,1506一类题,1505套用1506即可就像最大子阵和与最大连续子和的关系回顾最大连续子序列状态方程:sum[i]=max(sum[i-1]+a[i],a[i]);最后从头到尾扫一边Sum[i]为以i结尾的最大连续子和 也可以写成: Max=a[0]; Current=0;原创 2013-08-16 23:52:10 · 982 阅读 · 0 评论