
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 · 252 阅读 · 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 · 234 阅读 · 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 · 554 阅读 · 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 · 172 阅读 · 0 评论 -
309. 最佳买卖股票时机含冷冻期
最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]dp[i][j] 表示第i天,持有股票的状态。dp[i][1.原创 2020-07-10 11:18:05 · 108 阅读 · 0 评论 -
P1352 没有上司的舞会(树形DP)
1352题目描述 某大学有 n 个职员,编号为 1-n。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。我们可以定义 dp[i][0/1] 代表以 i 为根的子树的最优解(第二维的值为 0 代表 i 不参加舞会的情况,1 代表 i原创 2020-06-13 10:32:16 · 242 阅读 · 0 评论 -
P1880 [NOI1995]石子合并(区间DP)
P1880 [NOI1995]石子合并在一个圆形操场的四周摆放 NN 堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将 NN 堆石子合并成 11 堆的最小得分和最大得分。输入格式数据的第 11 行是正整数 NN,表示有 NN 堆石子。第 22 行有 NN 个整数,第 ii 个整数 a_iai 表示第 ii 堆石子的个数。输出格式输出共 22 行,第 11 行为最小得分,第 22 行为最大得原创 2020-06-12 20:57:09 · 827 阅读 · 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 · 282 阅读 · 0 评论 -
P2602 [ZJOI2010]数字计数
P2602题目描述给定两个正整数 a 和 b,求在 [a,b]中的所有整数中,每个数码(digit)各出现了多少次。输入格式仅包含一行两个整数 a,b,含义如上所述。输出格式包含一行十个整数,分别表示 0∼9 在 [a,b]中出现了多少次。1 999 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 · 142 阅读 · 0 评论 -
P1434 [SHOI2002]滑雪 (dfs+记忆化)
洛谷1434Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,原创 2020-06-10 18:36:24 · 246 阅读 · 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 · 161 阅读 · 0 评论 -
背包问题模板(待更)
01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出...原创 2020-04-12 21:23:17 · 108 阅读 · 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 · 184 阅读 · 0 评论 -
不要49
hdu3555BombTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 29659 Accepted Submission(s): 11339Problem DescriptionThe counter-terrorists...原创 2020-04-09 11:14:31 · 104 阅读 · 0 评论 -
不要62 (数位DP模板题)
不要62hdu2089Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 77301 Accepted Submission(s): 31506Problem Description杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoe...原创 2020-04-09 11:11:50 · 151 阅读 · 0 评论 -
数位DP
基础篇数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位…数的每一位就是数位啦!之所以要引入数位的概念完全就是为了dp。数位dp的实质就是换一种暴力枚举的方式,使得新的枚举方式满足dp的性质,然后记忆化就可以了。控制上界枚举,从最高位开始往下...转载 2020-04-09 11:08:54 · 1081 阅读 · 0 评论 -
01背包模板题
hdu2602Bone CollectorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 114313 Accepted Submission(s): 45947Problem DescriptionMany years a...原创 2020-04-07 23:07:33 · 226 阅读 · 0 评论 -
hdu 2546 饭卡
思路:先用5块买最贵的,再01背包。hdu 2546饭卡Problem Description电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上...原创 2020-04-07 23:00:04 · 189 阅读 · 0 评论