DP
文章平均质量分 59
通常是空间换时间,将计算出的结果存表,下次计算时直接调用,不用再算一遍,大大节省了时间。
Freeman_sason
SSL毕业学生
展开
-
P3146 [USACO16OPEN] 248 G
248G(区间DP)题目地址一道基础的区间DP题。状态:f[i][j]表示从i到j这段区间内的最大值。f[i][j]表示从i到j这段区间内的最大值。f[i][j]表示从i到j这段区间内的最大值。初始化: 一般根据题意来进行边界处理,这道题的边界是f[i][i]f[i][i]f[i][i].转移方程:但左右两个子区间最大值相等(可以合并)时,f[i][j]=max(f[i][j],其中一个子区间最大值+1)f[i][j] = max(f[i][j],其中一个子区间最大值 + 1)f[i原创 2021-09-12 14:08:29 · 142 阅读 · 0 评论 -
[一本通]P1296:宠物小精灵之收服
宠物小精灵之收服(动态规划)题目地址题意:小智有精灵球N,体力M,以及共有K个小精灵。每一个小精灵都有它对应的精灵球数、体力数。问:在精灵球及体力>=0的前提下,最多能收服多少只小精灵,同时,剩余的最大体力值(注:在多种方案下,收服小精灵数一致且最多时,)...原创 2021-06-28 18:45:38 · 578 阅读 · 0 评论 -
C\C++洛谷P1776宝物筛选
宝物筛选(混合背包)前言:请读者在已知01背包、完全背包的推导过程,且有一定的DP基础的前提下,再来阅读本文,效果更佳。题意:小FF找到了N件宝物,每一件都有它的价值、重量、数量,小FF当然想全部拿走,但它有一个拉跨的 手推车,只能承受M的重量。求在重量不超过M的前提下,拿到的宝物价值最大!!!输入:第一行为N、M,接下来的N行为每一件宝物的价值、重量、数量。输出:最大价值!!!思路:大家应该都能看出来是一个混合背包:即集01背包、完全背包、多重背包于一身的杂交体,这类问题我们的普原创 2021-06-19 23:15:21 · 466 阅读 · 2 评论 -
NOIP2000 提高组:乘积最大
题目描述:今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:设有一个长度N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串: 312,当N=3,K=1时会有以下两种分法:1原创 2021-05-05 11:52:56 · 1497 阅读 · 0 评论 -
随笔(记录背包类DP问题的写法)
背包类DP1.01背包:时间:O(nv)#include<iostream>using namespace std;int n,m,v,w,f[1200];int main(){ cin >> n >> m; do //不能写成while,假如只有一个物品会出问题 { cin >> v >> w; for(int j = m;j >= v;--j)原创 2021-03-05 23:07:09 · 73 阅读 · 0 评论 -
AcWing P279.自然数拆分(DP)
自然数拆分(DP完全背包)题目描述:给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复。注意:拆分方案不考虑顺序;至少拆分成2个数的和。求拆分的方案数 mod 2147483648的结果。输入格式:一个自然数N。输出格式:输入一个整数,表示结果。数据范围和约定:1≤N≤4000输入样例:7输出样例:14思路:题中“使用的数可以重复”这里暴露了完全背包的本性(知己知彼,百战不殆),我们可以将n看作背包容量,且一共有n - 1原创 2021-02-19 20:52:08 · 881 阅读 · 0 评论 -
DP(01背包问题)开心的金明——2006NOIP真题
DP_01背包问题——开心的金明2006NOIP真题具体分析:请看下图AC代码:题目描述:金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N原创 2021-02-01 11:25:32 · 301 阅读 · 0 评论