动态规划
文章平均质量分 51
动态规划题解
LZH0217
这个作者很懒,什么都没留下…
展开
-
背包问题整理
动态规划中很经典的一类问题就是背包问题……01背包问题描述:有n个物品,每个物品体积为v[i],价值为w[i],每个物品只能选一次,现有一个背包体积大小为V,问如何选择物品使得装入背包里的价值总和最大。分析:定义状态f[i][j]为前i个物品装j体积大小能得到的最大价值。int f[n][V];for (int i = 1; i <= n; ++i) { for (int j = 1; j <= V; ++j) { if (v[i] > j) { f[i][j] =原创 2021-03-09 15:45:59 · 222 阅读 · 0 评论 -
牛客 F - 爬塔 (分组背包)
中国计量大学现代科技学院第四届“中竞杯”程序设计校赛(同步赛)F - 爬塔链接:https://ac.nowcoder.com/acm/contest/9680/F题目描述高川最喜欢的游戏当属 Slay the Spire,这是一款爬塔游戏,你需要从一座塔的底部一直爬到顶部,在爬塔的过程中,塔的每一层都有许多的宝物等你来拿。高川从塔的左侧开始攀爬,从底部爬到顶部,再从右侧从顶部逐步下到底部。塔总共有 n 层,每一层都有很多宝物从左到右排列。在左侧攀爬时,他只能从每层的最左边按顺序取宝物,在右侧下降时原创 2021-03-09 15:45:17 · 283 阅读 · 0 评论 -
Coins HDU - 2844(多重背包 模板题)
http://acm.hdu.edu.cn/showproblem.php?pid=5572题目大意有n种面值的硬币,每种硬币有c[i]个,问1~m之间的所有价值,能用这些硬币组合出来的个数是多少个。(1≤n≤100), (m≤100000)分析明显的多重背包。把每种硬币二进制拆分优化。详细看 背包问题整理#include <bits/stdc++.h>using namespace std;const int N = 2e5 + 10;int a[110], c[110];原创 2021-03-09 15:37:20 · 159 阅读 · 0 评论 -
牛客 A 古老的牛市,遗迹的天梯(dp)
https://ac.nowcoder.com/acm/contest/5968/A#include <bits/stdc++.h>using namespace std;int a[500], dp[500]; // dp[i]走到第i阶的最小步数int main() { int n; cin >> n; for (int i = 1; i <= n; ++i) { cin >> a[i]; }原创 2020-09-13 09:03:42 · 215 阅读 · 0 评论 -
二叉苹果树(树形DP)
二叉苹果树题目链接code#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int> pii;typedef pair<ll, ll> pll;const int INF = 0x3f3f3f3f;const ll INFF = 0x3f3f3f3f3f3f3f3f;const ll MOD = 1e9 + 7;const int M原创 2020-08-31 20:14:38 · 318 阅读 · 0 评论 -
NC14734 比赛(dp)
链接:https://ac.nowcoder.com/acm/problem/14734题目描述你在打比赛,这场比赛总共有12个题对于第i个题,你的队伍有a[i]的几率解决她如果解决不了她呢?由于所有人讨论的都很大声所以你有b[i]的概率从左边那个队那里听会这个题的做法有c[i]的概率从右边那个队那里听会这个题的做法请问最终你们队伍解出0-12题的概率分别是多少输入描述:第一行12个数表示a[1] -> a[12]第二行12个数表示b[1] -> b[12]第三行12个数原创 2020-08-03 16:35:44 · 185 阅读 · 0 评论 -
NC15034 德玛西亚万岁(状压dp)
链接:https://ac.nowcoder.com/acm/problem/15034题目描述德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士。结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土地标记为0表示为高山峻岭或者深海湖泊,英雄们无法在其中站立,只有标记为1的土地才能容纳一个英雄。德玛西亚的英雄们战斗时有一个特点,他们不原创 2020-08-03 11:27:28 · 464 阅读 · 0 评论 -
NC15748 旅游(树形DP、树的最大独立集)
题目描述题目链接:https://ac.nowcoder.com/acm/problem/15748Cwbc和XHRlyb生活在s市,这天他们打算一起出去旅游。旅行地图上有n个城市,它们之间通过n-1条道路联通。Cwbc和XHRlyb第一天会在s市住宿,并游览与它距离不超过1的所有城市,之后的每天会选择一个城市住宿,然后游览与它距离不超过1的所有城市。他们不想住在一个已经浏览过的城市,又想尽可能多的延长旅行时间。XHRlyb想知道她与Cwbc最多能度过多少天的时光呢?聪明的你在仔细阅读题目后,原创 2020-08-01 10:09:44 · 238 阅读 · 0 评论 -
NC17134 Symmetric Matrix(dp+数学)
链接:https://ac.nowcoder.com/acm/problem/17134solution首先看一下 n×nn \times nn×n 的方阵需要满足的条件:矩阵中的任意元素 ai,j∈{0,1,2}a_{i,j} \in \{0,1,2\}ai,j∈{0,1,2}满足对称矩阵每行的和是2主对角线都是0这些条件加起来就是无向图的邻接矩阵表示,ai,ja_{i,j}ai,j 就是点 iii 到点 jjj 的权值,我们把这个权值定义为边的个数,即点 iii 到点 jjj 的.原创 2020-07-29 12:14:24 · 229 阅读 · 0 评论 -
2020 年百度之星·程序设计大赛 - 初赛三 P1005 Chess (HDU 6787) dp
Chess链接:http://acm.hdu.edu.cn/showproblem.php?pid=6787solution不能出现连续的11个传送器,其他情况一定都可以到达点n。dpi,j,kdp_{i,j,k}dpi,j,k 表示前 iii 个位置,已经放了 kkk 个传送器,且以 iii 结尾的连续的传送器有 jjj 个。考虑第 iii 位放或者不放,如果不放,那么就会从这个位置断开,以 iii 结尾的连续的传送器就变成了0,那么第 i−1i-1i−1 位就可以有连续的 0~10 个原创 2020-07-28 18:57:42 · 194 阅读 · 0 评论 -
NC21228 货币系统(5月27日 完全背包)
NC21228 货币系统题目链接题目大意给出一个包含 nnn 个不同面值的货币系统,最少要多少种货币能表示出原货币系统能表示的所有面额。输入243 19 10 6511 29 13 19 17输出25说明在第一组数据中,货币系统(2, [3,10])和给出的货币系统(n, a)等价,并可以验证不存在m < 2的等价的货币系统,因此答案为2。在第二组数据中,可以验证不存在m < n的等价的货币系统,因此答案为5。备注:1 <= T <= 20, 1原创 2020-05-30 17:41:13 · 199 阅读 · 0 评论 -
子序列(牛客4.24 dp)
子序列题目链接题解链接题目描述小美有一个由 nnn 个元素组成的序列 {a1,a2,a3,...,an}\{a_1,a_2,a_3,...,a_n\}{a1,a2,a3,...,an},她想知道其中有多少个子序列 {ap1,ap2,...,apm}(1≤m≤n,1≤p1<p2,...,<pm≤n)\{a_{p_1},a_{p_2},...,a_{p_m}\} (1 \le m \le n, 1 \le p_1 < p_2 ,..., < p_m ≤ n){ap1原创 2020-05-10 22:37:26 · 254 阅读 · 0 评论 -
Problem K. Road Network - ACPC2015(求树的直径 dp)
Problem K. Road Network题目链接Arab Collegiate Programming Contest 2015题意:树形的公路,如果阻塞道路可以断开两个区域彼此的连接,则道路是脆弱的。现在只能修建一条公路尽可能来避免这种情况。分析:用这一条公路连成一个环,那么这个环上的所有路都不是脆弱的。那么我们要选一条最长的链把它连起来,这是最优的情况。这就是求树的直径。与我...原创 2020-05-01 21:30:34 · 166 阅读 · 0 评论 -
B-树上子链 牛客小白月赛22(树形DP 最长链)
树上子链题目链接题目描述给定一棵树 T ,树 T 上每个点都有一个权值。定义一颗树的子链的大小为:这个子链上所有结点的权值和。请在树 T 中找出一条最大的子链并输出。输入描述:第一行输入一个 n,1≤n≤105n,1 \le n \le 10^5n,1≤n≤105 。接下来一行包含 nnn 个数,对于每个数 ai,−105≤ai≤105a_i, -10^5 \le a_i \le...原创 2020-05-01 19:14:46 · 206 阅读 · 0 评论 -
Removal(4月27日 DP)
Removal链接:https://ac.nowcoder.com/acm/problem/17137我感觉写的很好的一个题解题意:nnn 个数的序列,删除 mmm 个数后,剩余的数有多少种不同的序列组合思路:dp[i][j]dp[i][j]dp[i][j] 表示前 iii 个数中删除 jjj 个数的方案数。那么状态就只有两种,选 和 不选:dp[i][j]=dp[i−1][j...原创 2020-04-27 17:33:52 · 166 阅读 · 0 评论 -
牛牛染颜色 牛客练习赛62(树形DP)
牛牛染颜色链接:https://ac.nowcoder.com/acm/contest/5205/C题目描述牛牛最近得到了一颗树,根是 1 号节点,他想要把这颗树染色。每个节点可以染成白色和黑色,牛牛认为一种染色方案是好的当且仅当任意两个黑点的 lca(最近公共祖先)的颜色也是黑色的。求一共有多少种好的染色的方案。即:求树上有多少个点集 SSS 对于 ∀i,j∈S,i≠j\forall...原创 2020-04-26 15:35:12 · 296 阅读 · 0 评论 -
Rinne Loves Edges(4月1日题目 简单树形dp)
Rinne Loves Edges链接:https://ac.nowcoder.com/acm/problem/22598题解:https://ac.nowcoder.com/discuss/396415初次接触树形dp题目描述Rinne 最近了解了如何快速维护可支持插入边删除边的图,并且高效的回答一下奇妙的询问。她现在拿到了一个 nnn 个节点 mmm 条边的无向连通图,每条边...原创 2020-04-04 15:27:50 · 200 阅读 · 0 评论 -
P1018 乘积最大(dp)
P1018 乘积最大https://www.luogu.com.cn/problem/P1018不得不说python的码量……这题C++高精真的很麻烦,先埋下一个C++高精的坑????题意:有一个长度为NNN的数字串,要求选手使用KKK个乘号将它分成K+1K+1K+1个部分,找出一种分法,使得这K+1K+1K+1个部分的乘积能够为最大。输入4 21231输出62思路:dp。 ...原创 2020-03-30 17:26:31 · 230 阅读 · 0 评论 -
数学考试(牛客3月27日题目 前缀和+线性DP)
数学考试题目链接题解链接题目描述今天qwb要参加一个数学考试,这套试卷一共有n道题,每道题qwb能获得的分数为ai,qwb并不打算把这些题全做完,他想选总共2k道题来做,并且期望他能获得的分数尽可能的大,他准备选2个不连续的长度为k的区间,即[L,L+1,L+2,…,L+k-1],[R,R+1,R+2,…,R+k-1](R >= L+k)。输入描述:第一行一个整数T(T<...原创 2020-03-26 19:46:29 · 283 阅读 · 0 评论 -
合并回文子串(3月26日题目 区间dp)
合并回文子串 - 区间dp题目题解每日一题汇总帖思路:区间dp。刚开始看这道题的时候,一点思路也没有????,but不会的题一律归为DP,然而还是没思路????,脑袋炸了????。用dp[i][j][k][l]dp[i][j][k][l]dp[i][j][k][l]表示AAA的区间[i,j][i,j][i,j]和BBB的区间[k,l][k,l][k,l]合并后能否组成回文串,而且dp[i][j][k...原创 2020-03-26 16:50:47 · 353 阅读 · 0 评论 -
Benelux Algorithm Programming Contest 2019 E. Efficient Exchange(动态规划dp)
Efficient ExchangeYou have recently acquired a new job at the Bank for Acquiring Peculiar Currencies. Here people can make payments, and deposit or withdraw money in all kinds of strange currencies. ...原创 2020-03-21 23:31:58 · 287 阅读 · 0 评论 -
Max Sum Plus Plus(区间DP)
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) ...原创 2020-03-09 12:42:30 · 267 阅读 · 0 评论 -
最大子段和问题(暴力、分治、贪心、动态规划)
最大子段和问题暴力前缀和预处理分治法(不会????)贪心动态规划题目整理LeetCode53. 最大子序和https://leetcode-cn.com/problems/maximum-subarray/LeetCode官方题解:https://leetcode-cn.com/problems/maximum-subarray/solution/zui-da-zi...原创 2020-03-09 12:28:51 · 653 阅读 · 0 评论 -
POJ 3624 - Charm Bracelet(01背包)
POJ 3624 Charm Bracelet题意:给出 nnn 和 mmm ,然后给出 nnn 行,每行 wiw_iwi,did_idi,表示重量和价值,每个物品只能用一次,求最大重量为 mmm 时的最大价值。思路:01背包模板题。Code:#include <iostream>using namespace std;int n, m;int w[3500]...原创 2020-03-03 18:17:29 · 233 阅读 · 0 评论 -
Bicolorings(DP)
BicoloringsEducational Codeforces Round 51 (Rated for Div. 2)https://codeforces.com/problemset/problem/1051/D题目大意:给出222行nnn列的网格,每个格子涂黑或涂白,l两个相邻的格子如果颜色相同则说他们在一个区域,如果颜色不同则是两个区域,求这个网格分成kkk个区域的方案数。...原创 2020-02-28 14:37:34 · 178 阅读 · 0 评论 -
Codeforces - Ayoub and Lost Array(dp)
Ayoub and Lost ArrayCodeforces Round #533 (Div. 2) - C. Ayoub and Lost ArrayB站视频讲解 https://www.bilibili.com/video/av41282261题意:大小为 nnn 的数组,数据范围是 [l,r][l,r][l,r],所有数的和被3整除,求满足条件的数组不同的方法数,答案模 1e9...原创 2020-02-14 18:13:53 · 151 阅读 · 0 评论 -
Codeforces - Multiplicity (DP)
Codeforces - Multiplicity(DP)Codeforces Round #523 (Div. 2) - C题目链接:https://codeforces.com/contest/1061/problem/C思路:一开始用的二维dp,dp[i][j]dp[i][j]dp[i][j]表示前iii个数长度为jjj的子序列的方法数,复杂度O(n2)O(n^2)O(n2),...原创 2020-02-15 10:28:10 · 241 阅读 · 2 评论 -
动态规划 简单题目集锦(一) UPC
【动态规划】简单题目集锦(一) UPC题目探索数字迷塔圣诞树传球游戏黑熊过河抢金块维修栅栏攀登宝塔fstring字符串防卫导弹题目探索数字迷塔题目描述晶晶最近迷上了数字迷宫游戏,整天沉浸在一串串看似简单的数字中自得其乐。数字迷宫游戏的魅力体现在变化中隐含着不变的规律,归纳是探究数字迷宫的法宝之一。下图就是一个由线连接起来的数字小方格组成的数字迷塔。这个迷塔共n层,它由n×(n+1)/2...原创 2019-08-06 11:33:54 · 875 阅读 · 0 评论 -
洛谷 P1880 [NOI1995]石子合并
P1880 [NOI1995]石子合并解题思路:Code:#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const int INF = 0x3f3f3f3f;const int N = ...原创 2020-02-20 20:06:55 · 123 阅读 · 0 评论 -
最长递增子序列(LIS)和最长公共子序列(LCS)
LIS & LCS最长递增子序列(LIS)最长公共子序列(LCS)最长递增子序列(LIS)在计算机科学中,最长递增子序列(longest increasing subsequence)问题是指,在一个给定的数值序列中,找到一个子序列,使得这个子序列元素的数值依次递增,并且这个子序列的长度尽可能地大。最长递增子序列中的元素在原序列中不一定是连续的。许多与数学、算法、随机矩阵理论、表示论...原创 2020-02-10 17:56:09 · 367 阅读 · 0 评论 -
蓝桥杯训练5 G-背包问题
G. 背包问题典型的01背包问题。Code:#include <bits/stdc++.h>#define IO ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);using namespace std;typedef long long ll;int n, W;int w[110], p[110];int d...原创 2020-02-10 09:27:37 · 214 阅读 · 0 评论 -
蓝桥杯训练5 最大子段和(DP)
最大子段和 - DPDescriptionNNN 个整数组成的序列 a[1],a[2],a[3],…,a[n]a[1],a[2],a[3],…,a[n]a[1],a[2],a[3],…,a[n],求该序列如 a[i]+a[i+1]+…+a[j]a[i]+a[i+1]+…+a[j]a[i]+a[i+1]+…+a[j] 的连续子段和的最大值。当所给的整数均为负数时和为 000。例如:−2,11,...原创 2020-02-08 12:48:31 · 296 阅读 · 0 评论 -
Bone Collector HDU - 2602 (01背包)
Bone Collector HDU - 2602涂奥最近迷上了吃鸡,房间有n个配件,每个配件有c(c<=1e3)的重量和v(v<=1e3)的价值,哇,涂奥捡了一个2级包,容量为s,所以涂奥最多当多肥的快递员呢?Input输入的第一行是T, 表示有一共要打T场比赛.每组数据由三行组成.第1行包含两个整数n和s 第2行包含n个整数, 表示每一个配件的价值. 第3行包含n个整数,...原创 2020-02-07 20:27:03 · 241 阅读 · 1 评论 -
动态规划题目一
动态规划练习题一A - Max Sum Plus PlusProblem DescriptionNow I think you have got an AC in Ignatius.L’s “Max Sum” problem. To be a brave ACMer, we always challenge ourselves to more difficult problems. Now ...原创 2019-11-10 13:51:04 · 462 阅读 · 0 评论 -
动态规划 种树
UPC2019秋个人训练赛1-B种树题目描述事实上,小X邀请两位奆老来的目的远不止是玩斗地主,主要是为了抓来苦力,替他的后花园种树……小X的后花园是环形的,他想在花园周围均匀地种上n棵树,但是奆老花园的土壤当然非同寻常,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值。小X最喜欢3种树,这3种树的高度分别为10,20,30。小X希望这一圈树种得有层次感,所...原创 2019-09-24 18:49:50 · 580 阅读 · 0 评论