![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
小菜鸡在努力啊
余生很长,请多指教。
展开
-
P1364 医院设置 (换根DP)
P1364 医院设置 提交 9.17k 通过 6.04k 时间限制 1.00s 内存限制 125.00MB 提交答案 加入收藏 题目提供者 洛谷 难度 普及/提高- 历史分数 100 提交记录 查看题解 标签 进入讨论版 相关讨论 推荐题目 展开 题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为 11。如上图中,若医院建在1 处,则距离和 =4+12+2\time原创 2020-08-05 23:11:45 · 198 阅读 · 0 评论 -
P2015二叉苹果树 (树上DP)
P2015 二叉苹果树 提交 15.30k 通过 7.27k 时间限制 1.00s 内存限制 125.00MB 提交答案 加入收藏 题目提供者 洛谷 难度 普及/提高- 历史分数 100 提交记录 查看题解 标签 进入讨论版 相关讨论 推荐题目 展开 题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。 我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树 2 5原创 2020-08-05 23:08:05 · 184 阅读 · 0 评论 -
【动态规划】矩形嵌套 (DGA上的动态规划)
题目描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在 矩形Y(c,d)中当且仅当a<c,b<d或者 b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排 成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。 输入 第一行是一个正正数N(0<N<10),表示测试数据组数, 每组测试数据的第一行是一个正正数n,表示该组测试数据中含有矩形的个数(n<原创 2020-08-05 11:47:25 · 503 阅读 · 0 评论 -
121. 买卖股票的最佳时机(dp)
买卖股票的最佳时机 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。 .原创 2020-07-10 11:38:59 · 133 阅读 · 0 评论 -
309. 最佳买卖股票时机含冷冻期
最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。 示例: 输入: [1,2,3,0,2] 输出: 3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出] dp[i][j] 表示第i天,持有股票的状态。dp[i][1.原创 2020-07-10 11:18:05 · 83 阅读 · 0 评论 -
P1352 没有上司的舞会(树形DP)
1352 题目描述 某大学有 n 个职员,编号为 1-n。 他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。 现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri ,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。 所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。 我们可以定义 dp[i][0/1] 代表以 i 为根的子树的最优解(第二维的值为 0 代表 i 不参加舞会的情况,1 代表 i原创 2020-06-13 10:32:16 · 212 阅读 · 0 评论 -
P1880 [NOI1995]石子合并(区间DP)
P1880 [NOI1995]石子合并 在一个圆形操场的四周摆放 NN 堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出一个算法,计算出将 NN 堆石子合并成 11 堆的最小得分和最大得分。 输入格式 数据的第 11 行是正整数 NN,表示有 NN 堆石子。 第 22 行有 NN 个整数,第 ii 个整数 a_ia i 表示第 ii 堆石子的个数。 输出格式 输出共 22 行,第 11 行为最小得分,第 22 行为最大得原创 2020-06-12 20:57:09 · 790 阅读 · 1 评论 -
T30158 石子合并(简单版)(区间DP模板题)
T30158 石子合并(简单版) T30158 题目描述 N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。 例如: 1 2 3 4,有不少合并方法 1 2 3 4 => 3 3 4(3) => 6 4(9) => 10(19) 1 2 3 4 => 1 5 4(5) => 1 9(14) => 10(24) 1 2 3 4 => 1 2 7(7)原创 2020-06-12 16:38:00 · 246 阅读 · 0 评论 -
P2602 [ZJOI2010]数字计数
P2602 题目描述 给定两个正整数 a 和 b,求在 [a,b]中的所有整数中,每个数码(digit)各出现了多少次。 输入格式 仅包含一行两个整数 a,b,含义如上所述。 输出格式 包含一行十个整数,分别表示 0∼9 在 [a,b]中出现了多少次。 1 99 9 20 20 20 20 20 20 20 20 20 对于 30% 的数据,保证 a≤b≤10^6 ; 对于 100% 的数据,保证 1≤a≤b≤10^12 。 lead为false表示有前导0,limit为true表示该位置有限制。 #inc原创 2020-06-11 14:15:41 · 118 阅读 · 0 评论 -
P1434 [SHOI2002]滑雪 (dfs+记忆化)
洛谷1434 Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 一个人可以从某个点滑向上下左右相邻四个点之一,原创 2020-06-10 18:36:24 · 210 阅读 · 0 评论 -
P2392 kkksc03考前临时抱佛脚 (01背包)
洛谷2392 题目算是01背包问题的变种吧,相当于给你4个背包容量为sum/2的背包,求最大的价值,因为我们要求所花费的最小时间,所以可以先求出距离sum/2最近的最大价值。其中体积和价值都是所要花费的时间。 #include<bits/stdc++.h> using namespace std; int a[5],i,j,k,sum,t,homework[21],dp[2501]; int main(){ for(i=1;i<=4;i++) cin>>a[i]; fo原创 2020-06-03 16:00:49 · 141 阅读 · 0 评论 -
背包问题模板(待更)
01背包问题 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。 输出格式 输出...原创 2020-04-12 21:23:17 · 96 阅读 · 0 评论 -
floyd+状压dp模板题
hdu5418 维克多与世界 时间限制:4000/2000 MS(Java /其他)内存限制:262144/131072 K(Java /其他) 提交总数:2666接受提交:1201 问题描述 经过多年的努力,Victor终于获得了飞行员执照。为了庆祝,他打算给自己买飞机,环游世界。地球上有n个国家,编号从1到n。它们通过m个无向航班进行连接,详细地说,第i个航班将连接ui-th和vi-th国家,...原创 2020-04-11 23:15:11 · 148 阅读 · 0 评论 -
不要49
hdu3555 Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 29659 Accepted Submission(s): 11339 Problem Description The counter-terrorists...原创 2020-04-09 11:14:31 · 83 阅读 · 0 评论 -
不要62 (数位DP模板题)
不要62hdu2089 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 77301 Accepted Submission(s): 31506 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoe...原创 2020-04-09 11:11:50 · 127 阅读 · 0 评论 -
数位DP
基础篇 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位…数的每一位就是数位啦! 之所以要引入数位的概念完全就是为了dp。数位dp的实质就是换一种暴力枚举的方式,使得新的枚举方式满足dp的性质,然后记忆化就可以了。 控制上界枚举,从最高位开始往下...转载 2020-04-09 11:08:54 · 1032 阅读 · 0 评论 -
01背包模板题
hdu2602 Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 114313 Accepted Submission(s): 45947 Problem Description Many years a...原创 2020-04-07 23:07:33 · 190 阅读 · 0 评论 -
hdu 2546 饭卡
思路:先用5块买最贵的,再01背包。 hdu 2546 饭卡 Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。 某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上...原创 2020-04-07 23:00:04 · 152 阅读 · 0 评论