dp-普通dp
一般的动态规划,只需要状态转移
Nemaleswang
ACM退役狗一只
展开
-
Leetcode 剑指 Offer 19. 正则表达式匹配
题目链接:剑指 Offer 19. 正则表达式匹配题目大意:给你一个原串和匹配串,其中匹配串中有.和*两种特殊字符,.可以匹配任意字符,*可以匹配任意个他前面的字符(包括0个),问是否能匹配题目思路:经典题目了,很早之前就做过,不过发现又不太会了,看了题解才捋清除。首先考虑dp的做法,dp[i][j]是一个bool型,代表s串的前i个字符与p串的前j个字符是否匹配,考虑匹配串的最后一个字符:1、如果该字符是正常的字母,那么只需要判断他与原串的最后一个字母是否相等,不想等则一定不匹配,相等也需要根据前面原创 2020-11-30 22:15:34 · 186 阅读 · 0 评论 -
Leetcode 剑指 Offer 14- II. 剪绳子 II LCOF
题目链接:剪绳子 II LCOF题目大意:给你一个绳子,长度为n,要求你拆分其为m(m>2)段,并且要求所有段长度的乘积最大题目思路:比较经典的一个题目了,首先可以想到的一个经典解法是dp的做法,对于一个绳子,我们先任意减去一小段,这样得到的就是更小的绳子,而更小的绳子的最大乘积我们可以得到,因此就有了答案,枚举取最大值即可。 而另一个解法涉及到到数学问题,这个做法的证明可以见官方题解,证明的很好,本质上是证明一个下界,比较容易想到的解法是长度为n的绳子拆分成m段,一定是均分后得到的乘积最大,而原创 2020-11-26 17:07:43 · 153 阅读 · 0 评论 -
Leetcode 221. Maximal Square
题目链接:Maximal Square题目大意:给定一个零一矩阵,要求你找到里面最大的全1正方形(下面直接用矩阵表示)题目思路:一个简单DP,对于一个矩阵,我们需要考虑这样一个问题,这个矩阵是全1矩阵,如果这个1可以往下接着延申,那么这个全1矩阵就不是最优的,所以我们需要考虑对于某个1,他能得到的最优矩阵,那么一定是这个1是当前最优矩阵的右下角,我们可以用dp[i][j]表示以这个元素为右下角...原创 2020-04-27 23:03:05 · 199 阅读 · 0 评论 -
Leetcode 1143. Longest Common Subsequence
题目链接:Longest Common Subsequence题目大意:给定两个字符串,要求你要找最长公共子序列(不要求连续,只需要保证先后顺序)题目思路:一道DP好题吧,这个题不同于连续的写法,也不同于前缀,对于该题,可以想到一个dp解法,dp[i][j]表示text1的前i个和text2的前j个字符中的最长公共子序列,那么如果要往下一层递推会是什么情况呢,这时候需要比较当前的text1和t...原创 2020-04-26 21:33:26 · 176 阅读 · 0 评论 -
Leetcode 1340. Jump Game V
题目链接:Jump Game V题目大意:给定一个高度数组,每个数字代表一个高度,现在有如下规则:起点任选,从某个高度(起点)可以跳到另一个高度(终点),但是要求就是他们之间的距离得不大于d,且他们之间得所有高度值都得小于起始高度(包括终点),求从某个点开始能够访问最多的高度题目思路:首先我们可以想到一个逆向做法,我们从某个高度到比他低的高度不好做,但是如果我们知道了某一个高度的最多次数,如果...原创 2020-02-04 15:15:34 · 350 阅读 · 0 评论 -
hdoj 2571 命运
题目链接:命运题目大意:给你一个n*m的格子,如果当前格子是(x,y),下一步可以是(x+1,y),(x,y+1)或者(x,y*k) 其中k>1。然后算最后一格的价值题目思路:直接dp就好,初始化一下负数小值#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf = 0x3f3f3f3f;ll原创 2017-05-30 16:57:05 · 309 阅读 · 0 评论 -
“玲珑杯”ACM比赛 Round #18 C -- 图论你先敲完模板
题目链接:图论你先敲完模板 题目大意:n个点,然后一个人可以从一个点跑到另一个点,花费为pow(2,x[i]-x[j])+a,x[i]是第i个点的位置,最开始的时候这个人在第一个点,问他到第n个位置的时候需要的最少花费为多少题目思路:我们可以很轻松的得到这样一个转移方程dp[i] = min(dp[i],dp[j]+pow(2,dp[i]-dp[j])+a)当然这里算2次方肯定不能用pow,用位运算原创 2017-07-17 21:51:38 · 402 阅读 · 0 评论 -
hihocoder 1425 What a Beautiful Lake
题目链接:What a Beautiful Lake题目大意:给你一个长度为n的数组长度,求环形道路的最长上升子序列或最长下降子序列题目思路:直接dp做一下就好了#include <map>#include <set>#include <cmath>#include <vector>#include <cstdio>#include <cstring>#include <cstdlib>原创 2017-09-13 21:04:36 · 485 阅读 · 0 评论