![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
动态规划
b
蒋卫升
这个作者很懒,什么都没留下…
展开
-
leetcode 918.环形子数组的最大和
题意:给定一个由整数数组 A 表示的环形数组 C,求 C 的非空子数组的最大可能和。子数组要连续!important;题解:因为是环形,所以我们可以分为两种情况讨论包含两段只包含一段对于第一种情况,先求出数组的和,然后再再求出和最小的子数组,用和减去它即可对于第二种情况,我们直接求出和最大的子数组然后二者取最大值即可。和最小的子数组 && 和最大的子数组dp[i]=max(dp[i−1]+a[i],a[i])dp[i] = max(dp[i-1]+a[i], a[i]原创 2020-12-17 11:25:13 · 184 阅读 · 0 评论 -
leetcode 663. 均匀树划分
题意:给定一棵有 n 个结点的二叉树,你的任务是检查是否可以通过去掉树上的一条边将树分成两棵,且这两棵树结点之和相等。题解:树型dp,dp【i】代表i节点和它子树节点的总和,那么,我们先求出dp【root】,然后再判断是否存在某一个点,它的dp【i】= sum - dp【i】。如果有就返回true,否则返回false。/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val;原创 2020-12-08 14:04:36 · 2271 阅读 · 0 评论 -
糖糖别胡说,我真的不是签到题目 (逆向思维)三星
题意:链接:https://ac.nowcoder.com/acm/problem/14583来源:牛客网有n只萌萌的糖糖,他们分成了两组一起玩游戏。他们会排成一排,第i只糖糖会随机得到一个能力值bi。从第i秒的时候,第i只糖糖就可以消灭掉所有排在他前面的和他不是同一组的且能力值小于他的糖糖。为了使游戏更加有趣,糖糖的爸爸,娇姐,会发功m次,第i次发功的时间为ci,则在第ci秒结束后,b1,b2,…,bci都会增加1.现在,娇姐想知道在第n秒后,会有多少只糖糖存活下来。题解:从后往前考虑,第i原创 2020-10-01 16:43:50 · 285 阅读 · 0 评论 -
leetcode 5. 最长回文子串 (区间dp)
题意:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”题解:dp[i][j](boolean)dp[i][j](boolean)dp[i][j](boolean):代表iii到jjj是否是回文串首先预处理 长度为1,2的子串dp[i][j]dp[i][j]dp[i][j] = (dp[i+1原创 2020-11-24 22:19:37 · 232 阅读 · 0 评论 -
1599:【 例 3】修剪草坪(单调队列优化dp)
linklinklink题意:一个长度为nnn的数组,你可以从中取若段,每段的长度不能超过KKK,问取得若干段的最大值时多少?题解:dp[i][0]=max(dp[i−1][0],dp[i−1][1])dp[i][0] = max(dp[i-1][0],dp[i-1][1])dp[i][0]=max(dp[i−1][0],dp[i−1][1]);dp[i][1]=max(dp[k][0]+sum[i]−sum[k])dp[i][1] = max(dp[k][0]+sum[i]-sum[k])dp[i原创 2020-06-13 17:10:25 · 333 阅读 · 0 评论 -
D. Magic Numbers (数位dp)
题目链接男神说这是数位dp入门题,我数位dp果然没入门,枯了。题意:给你一个m,k,然后输入一个正整数a,和正整数b,(a,b的长度小于等于2000),问a到b中有多少魔力数字,所谓魔力数字就是,从高位到低位,偶数位置的数都是k,奇数位的数不能是k,并且这些数能被m整除。思路:数位dp算出0-b的答案,0-a的答案,相减即为最终答案,如果a是合法答案,最终的答案要+1。设d【pos】...原创 2020-02-01 16:04:56 · 289 阅读 · 0 评论 -
2019牛客暑期多校训练营(第七场)H Pair(数位dp)
题意:给你三个数,A,B,C,计算 有多少对数,满足 x & y > c || x ^ y < c ,其中(1 <= x <= A ,1 <= y <= B)。思路:我们可以首先求出他的反面,即有多少对数满足 【x & y <= c && x ^ y >= c 】然后拿总数 A*B 减去它就是最终的...原创 2019-11-25 20:17:13 · 128 阅读 · 0 评论 -
数位dp(不要62)&&(ccsu)
不要62题目链接题意:输出m到n中不包括62和4的数字的个数;比如:n=1,m=100,那么62是非法的,41、42、43.....都是非法的。思路:我们把从0到m的答案算出来,然后把0到n的答案算出来,相减即为最终所求。那么,如何求出0到m的答案呢?当然借助我们神奇的数位dp。我们首先要预处理出n的数位(比如100,数位为3)设置dp方程,dp[pos][sta][...原创 2019-08-20 17:16:59 · 288 阅读 · 3 评论 -
leetcode 211 最大正方形
题意:给你一个n*m的矩形,矩形中只包含0,1这两种元素,问这个矩形中全部为1的正方形的面积时多少?题解:设dp[i][j]dp[i][j]dp[i][j]为:以(i,j)(i,j)(i,j)这个位置为终点,能组成正方形的最大边长,那么当(i.j)(i.j)(i.j)这个位置的值为1时,dp[i][j]=min(dp[i−1][[j],dp[i][j−1],dp[i−1][j−1])+1dp[i][j] = min(dp[i-1][[j],dp[i][j-1],dp[i-1][j-1]) + 1dp[原创 2020-11-15 17:28:29 · 112 阅读 · 0 评论 -
leetcode 213. 打家劫色II
link题意:有n个房子围成一圈,其中第i个房子里有a[i]个金币,你是一个小偷,如果偷两个连在一起的房子就会报警,问你,如何偷窃可以使得金币最多而且不会被抓。思路:因为这些房间时围成一个圈的,偷了第一个房间,就不能偷最后一个房间。那么我们就分情况讨论,情况一:必偷最后一个房间,情况二:不偷最后一个房间,那么,对于情况一,就相当于移除了第一项和最后两项,变成了题(198 打家劫色),对于情况二,就相当于移除最后一项变成了(198 打家劫色)tips:我感觉它这个题还是不够严谨,因为如果n等于2的时候,原创 2020-11-11 15:33:03 · 193 阅读 · 0 评论 -
牛客周周练七 Rabbit的工作(1) (三维dp优化)
linklinklink思路:我们设三维dp:dp[i][j][k]dp[i][j][k]dp[i][j][k]到第iii天为止,已经工作了jjj天,包括第jjj天在内往前连续工作了kkk天消耗的最少体力值。那么如何转移?当第iii天必须休息时,即s[i]==0s[i]==0s[i]==0dp[i][j][0]==dp[i−1][j][k]dp[i][j][0] == dp[i-1][j][k]dp[i][j][0]==dp[i−1][j][k](其中1<=k<=j1<=k&l原创 2020-05-20 11:13:02 · 185 阅读 · 0 评论 -
HDU Max Sum Plus Plus (二维dp)
link题意:给你一个数组,有n个元素,选择m段两两没有没有交集的连续的段,输出这m段的和的最大值。dp[ i ][ j ] 为 j 前面且包含 j 在内的数中选择 i 段的最大值,那么,dp[ i ][ j ] = max(dp[ i ][ j - 1] , dp[ i - 1][ k] ) + a[ j ] ,(k<j)注意的是dp[ i ] [ j ] (i > j...原创 2020-04-07 13:15:30 · 114 阅读 · 0 评论 -
Codeforces Round #558 (Div. 2) D kmp + dp
题目链接题意:给你一个c串,你可以用任意小写字母替换c串中的 * 字符得到一个c',给你一个s和t串,定义:f(s1,s2) 为字符串 s2 在 s1 中出现的次数 ,求最大的 ans=f(c',s) - f(c',t)。思路:首先预处理出 s 和 t 的next数组,然后,设dp【i】【j】【k】分别代表c串匹配到第 i 个字符,s串匹配到第 j 个字符,t串匹配到第 k 个字符的最...原创 2019-11-25 21:22:39 · 110 阅读 · 0 评论 -
分组背包+二分图染色 (bitset+滚动数组优化)
题目链接题意:给你n种物品,有m种限制条件,然后输入n种物品的价值,m种限制条件,表示第i个物品不能与第j个物品分成一组,求把物品分成两组后,价值差最小,输出其中最大的价值。思路:对于每一个限制条件,都可以看成一棵树,我们对这棵树染色,分成两组,然后把每一组都取上,输出答案。#include<bits/stdc++.h>using namespace std;co...原创 2019-11-25 21:23:38 · 137 阅读 · 0 评论