动态规划专题讲解
live_now
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
题解 P1417 【烹调方案】
一道值得思考的dp题。这道题初看是一道01背包问题,但是这题选择物品的先后顺序对结果是有影响的,所以我们要加上一个贪心优化。贪心优化正确性证明:上代码:#include <bits/stdc++.h>using namespace std;const int inf = 0x7fffffff;#define ll long longll t, n, dp[10001...原创 2020-04-23 16:06:07 · 420 阅读 · 0 评论 -
洛谷 P1564 膜拜 题解
一个需要一点思维的dpdpdp,对于这道题:可以把序列中的所有222改为−1-1−1,就可以用前缀和统计相差的个数了。线性dpdpdp,dp[i]dp[i]dp[i]表示到第iii个人需要的机房数。状态转移:用前缀和对题意模拟,然后易得:dp[i]=min(dp[i],dp[j−1]+1)当j<=i时dp[i]=min(dp[i],dp[j - 1] + 1) \quad当 j &...原创 2020-04-07 14:04:38 · 349 阅读 · 0 评论 -
洛谷 P2347 砝码称重 题解
一道水题。。。实际上是一道多重背包,主要思路是将多重背包中的每一个物品拆出来,于是就变成01背包模板。这里定义状态为 f[i]f[i]f[i] 表示 iii的体积是否出现过。#include <bits/stdc++.h>using namespace std;int num[1010];int v, a, n, ans;bool dp[1010];int b[7]={0...原创 2020-04-03 18:44:55 · 352 阅读 · 0 评论 -
NOIP提高组 方格取数 题解
多线程动态规划,详见标程#include <iostream>using namespace std;const int N = 105;int a[N][N];int dp[N][N];int main(){ int n, x, y, w; cin >> n; while(cin >> x >> y >&...原创 2020-04-03 18:50:57 · 370 阅读 · 1 评论 -
洛谷 P1434 [SHOI2002]滑雪 题解
记忆化搜索,详见代码和一本通#include <bits/stdc++.h>using namespace std;int dx[4]={0, 0, 1, -1};int dy[4]={1, -1, 0, 0};int r, c, a[110][110], dp[110][110], ans;int dfs(int x, int y) { if(dp[x][y]) { ...原创 2020-04-02 17:31:07 · 329 阅读 · 0 评论 -
洛谷 P1091 合唱队列 题解
一道简单的LIS练手题。标程如下:#include <bits/stdc++.h>using namespace std;int n, a[110], dp[110][2], ans;int main () { cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; for(int i =...原创 2020-04-01 22:03:57 · 221 阅读 · 0 评论 -
洛谷 P1541 乌龟棋 题解
题目传送门这道题是一道非常经典的高维动态规划,作为2010年的NOIP提高组的题目,其质量是相当高的,今天就来解析一下这道题。1.定义状态观察题目中的数据范围,由于仅有444种爬行卡片,每种卡片的张数不会超过404040,所以这道题可以暴力开dpdpdp数组。所以这道题的状态就是酱紫的:dp[i][k1][k2][k3][k4]dp[i][k_1][k_2][k_3][k_4]dp[i]...原创 2020-03-31 22:35:33 · 458 阅读 · 0 评论 -
整数拆分问题解析
今天给大家带来一篇整数拆分问题的讲解,希望大家能喜欢。整数拆分问题是一类非常经典的动态规划问题,在2020NOI ONLINE中PJ T2出现,当时可谓难倒一片dalao,今天就以这道题来解读整数拆分问题。题面:题目描述小 H 是一个热爱运动的孩子,某天他想给自己制定一个跑步计划。小 H 计划跑 nnn 米,其中第 i(i≥1)i(i≥1)i(i≥1) 分钟要跑 xix_ixi 米(...原创 2020-03-23 22:53:51 · 742 阅读 · 0 评论 -
背包问题之01背包 全详解(最浅显易懂)
01背包是一种非常经典的动态规划问题,这里对01背包问题进行详细解读。01背包问题题目描述有NNN件物品和一个容量为VVV的背包。第iii件物品的体积是c[i]c[i]c[i],价值是w[i]w[i]w[i],求将哪些物品装入背包可使价值总和最大。01背包问题解析对于所有的动态规划问题,第一步都是确定状态。我们定义状态 dp[i][j]dp[i][j]dp[i][j] 是表示目前正在枚举...原创 2020-03-22 20:37:15 · 3383 阅读 · 0 评论
分享