dp
马角的逆袭
很菜的菜鸡
展开
-
AcWing 126. 最大的和 动态规划 O(n^3) 最大子矩阵的和
给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为1 * 1或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。例如,下列数组:0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 其最大子矩形为:9 2 -4 1 -1 8 它拥有最大和15。输入格式输入中将包含一个N*N的整数数组。第一行只输入一个整数N,表示方形二维数组的大小。从第二行开始,输入由空格和换行符隔开的N2个整数,原创 2020-06-03 16:49:22 · 246 阅读 · 0 评论 -
“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 点对最大值 dp
链接:https://ac.nowcoder.com/acm/contest/5758/A来源:牛客网题目描述这里有一棵树,每个点和每条边都存在一个价值。对于树上点对的价值,包括点对的起点和终点以及路径上边权值之和,不包括路径上其他点值。求这颗树上最大的点对价值为多少。点对至少需要两个点。输入描述:输入t,代表有t组样例。每组样例第一行输入n,代表有n个点。接下来有n-1行,第i行有a[i]和b[i],代表a[i]节点与i节点存在一条边,且边的值为b[i],2<=i<=n。接下来一行原创 2020-06-01 13:40:50 · 136 阅读 · 0 评论 -
leetcode120 三角形最小路径和 经典动态规划dp
三角形最小路径和2,3,4,6,5,7,4,1,8,3每步只能走**相邻的结点 **在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。状态表示: dp[i][k]表示当前位置的最小路径和dp[i][k]表示当前位置的最小路径和dp[i][k]表示当前位置的最小路径和转移方程:dp[i][k]=min(dp[i+1][k],dp[i+1][k+1])dp[i][k]=min(dp[i+1][k], dp[i+1][k+1])dp[i][k]=m原创 2020-05-16 13:49:19 · 79 阅读 · 0 评论 -
leetcode53 最大子序列和 动态规划
最大子序和给定一个数组,有正有负,求最大子数组和[-2,1,-3,4,-1,2,1,-5,4]连续子数组 [4,-1,2,1] 的和最大,为 6状态表示: dp[i]表示第i个数字位置能得到的最大和dp[i]表示第i个数字位置能得到的最大和dp[i]表示第i个数字位置能得到的最大和转移方程:dp[i]=max(dp[i−1]+num[i], a[i])dp[i]=max(dp[i-1]+num[i],~a[i])dp[i]=max(dp[i−1]+num[i],&nbs原创 2020-05-16 11:39:34 · 68 阅读 · 0 评论 -
买卖股票的最佳时机 leetcode121 动态规划
买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock暴力做法: O(n2)O(n^2)O(n2)选取一对数num[i](买入), num[j](卖出)num[i](买入),~num原创 2020-05-16 10:11:50 · 88 阅读 · 0 评论