题目 由于有三个方向,所以在普通二维dp上再加一个方向维度,用三维数组进行dp。 $f[i][j][\(→\)]$(\(f[i][j][0]\)) 表示从当前格子的左边走到当前格子能取到的最大整数之和。 $f[i][j][\(↓\)]$ (\(f[i][j][1]\)) 表示当前格子的上边边走到当前 ...
分类:
其他好文 时间:
2021-05-03 12:57:39
阅读次数:
0
class Solution { public List<Integer> getRow(int rowIndex) { Integer[] res = new Integer[rowIndex+1]; Arrays.fill(res,1); for(int i = 1; i <= rowIndex ...
分类:
编程语言 时间:
2020-07-19 17:46:05
阅读次数:
79
考虑用一个二维dp数组表示所需的最小操作次数。 dp[i][j]表示将word1的前i个字符转换为word2的前j个字符所需要的最少操作次数。 由于操作的顺序对于最后操作的结果没有影响,所以我们假设操作总是从word1的前面字符操作到word1的后面字符。 如果word1的第i个字符等于word2的 ...
分类:
其他好文 时间:
2020-07-04 20:50:44
阅读次数:
53
309. 最佳买卖股票时机含冷冻期 解释见代码: class Solution { public: int maxProfit(vector<int>& prices) { if(prices.size()<=1) return 0; int dp[prices.size()+10][3];//第一 ...
分类:
其他好文 时间:
2020-06-09 15:01:35
阅读次数:
64
共菜鸡笔者看的……会慢慢更新,也请看到的大佬留意一眼,指出不足。 对于一些对部分点的二维$dp$,状态从左上角继承而来时,对于一个点$(x,y)$,对它编号$x m+y$,按照这个顺序$dp$,可以保证更新当前值之前前面的已经被更新。 善于发掘题目的性质。对于一些一眼看上去没法$dp$的东西,观察题 ...
分类:
其他好文 时间:
2020-05-03 09:11:30
阅读次数:
74
学dp学到自闭(真的判断不出是个dp问题哇) 来看一下最近学的dp简单的题库. 1.01背包问题(P1048) 这个的特点是每种东西只能拿一次. https://www.luogu.com.cn/problem/P1048 二维dp: 1 for(int i=1;i<=m;i++) 2 { 3 sc ...
分类:
其他好文 时间:
2020-04-05 18:18:36
阅读次数:
57
思路:设二维dp数组, 一维表示当前到数字的哪一位, 二维为0表示在当前位置时所需的最低货币值,为1表示当前位置+1时所需的最低货币值 代码: 1 import numpy as np 2 dp = np.zeros(shape=(10002, 2), dtype=int) 3 4 s = inpu ...
分类:
其他好文 时间:
2020-03-22 19:47:45
阅读次数:
80
/* 在求最长回文子串时,如果暴力枚举左右端点,将得到指数级的复杂度。优化一点,使用二维数组来DP,可以将复杂度降到O(m*n)m,n为两条串的长度。本文采用Manacher算法,无论是时间还是空间上都优于二维DP。 */ 1 #include <iostream> 2 #include <stri ...
分类:
编程语言 时间:
2019-12-31 01:32:21
阅读次数:
77
"By Elevator or Stairs?" 简单的二维DP $f[i][j] $ 表示第 $i 1$ 层使用 第$j$ 种方法达到 第 $i$ 所需要的最短时间,$j = 0$ 代表 走楼梯,$j = 1$ 电梯。 $f[i+1][0]$ 表示第 $i$ 层使用 楼梯 到达 第$i+1$ 层的 ...
分类:
其他好文 时间:
2019-10-26 18:56:30
阅读次数:
69
暴露真实水平。 错点: T1线性筛质数数组没开龙龙 T2成功把三维Dp$O(n^3 log n)$优化成二维Dp$O(n^2 log n)$ T3 $meet in the middle $成功优化暴力,但最后交的表。 ...
分类:
其他好文 时间:
2019-10-12 21:04:28
阅读次数:
61