
DP
fighting_yifeng
梦想并不遥远,只要出发,终将到达
展开
-
DP题目总结(每天一小点)
从暑假集训时入门DP的不好体验,到疯狂抵制DP,被分到DP后持续绝望,终于在欣姐的帮助下逐渐接受现实,现在先不断更新下,近期做的DP题目,立个小小的flag。从今以后每天至少两DP题。后记:flag算是倒了,不间断更新做吧1.P2001 硬币的面值题意:就是用所给的硬币凑出所有不超过m的数,因而数组中一定要有1的存在,没有1的话则不可能完成。#include<bits...原创 2019-03-12 22:17:55 · 1275 阅读 · 3 评论 -
区间DP题型总结
一. 概念灌输区间DP是线性DP的扩展,分阶段地划分问题,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来有很大的关系。状态转移方程:区间DP的特点:(1)合并:即将两个或多个部分进行整合,当然也可以反过来。(2)特征:能将问题分解为能两两合并的形式。(3)求解:将整个问题舍最优值,枚举合并点,将问题分解为左右两个部分,最后合并的两个部分的最优值得到原问题的最优值。...原创 2019-03-26 22:33:37 · 868 阅读 · 0 评论 -
背包九讲模板整理
1.01背包1.1 题目有N件物品和一个容量为V的背包。第i件物品的费用是w[i],价值是v[i],求将哪些物品装入背包可使价值总和最大。1.2 特点每种物品仅有一件,可以选择放与不放。1.3 基本的状态转移方程f[i][j]= max(f[i − 1][j], f[i − 1][j − w[i]] + v[i])1.4 基本模板for(int i = 0; i ...原创 2019-03-28 11:38:43 · 327 阅读 · 0 评论 -
DP专题(继续搞)
A - Max Sum Plus Plus (滚动数组)要求m段区间的最大值,可以推出状态转移方程:dp[i][j] = max(dp[i][j-1], max{dp[i-1][k]} k = 1~j-1) + a[j]因为m不确定我们可以用滚动数组来表示 开一个max1数组不断更新前一段的数组的最大值。#include<bits/stdc++.h>#define...原创 2019-09-04 19:39:41 · 140 阅读 · 0 评论