dp
文章平均质量分 70
伍叁壹_
这个作者很懒,什么都没留下…
展开
-
CF696B Puzzles 题解
大佬提供的学术支持。原创 2022-07-20 08:30:10 · 137 阅读 · 0 评论 -
【CF487B】Strip 题解
这个节点也加进来,它要么对这个区间的极差没有影响,要么只会将这个极差变得更大。所以,若是一个左端点。在上面的代码中可以看到具体实现。这里有个优化为什么每次枚举到一个新的右端点,不需要从头再选一次。的左端点的位置往后枚举新的左端点,并且取最左边的合法左端点即可。这时候要注意到一个很重要的性质对于一个区间。(看见前面几篇题解都没有提到这个优化的具体原因。下面先贴上代码,后面会详讲优化及其原因。综上,我们只需要继续上一个枚举的。辛苦管理员审核,如有问题烦请指出。,对于每个确定的区间右端点。...原创 2022-07-20 08:28:53 · 101 阅读 · 0 评论 -
LG-P6006 [USACO20JAN]Farmer John Solves 3SUM G 题解
区间内三元组个数(满足 ai+aj+ak=0ai + aj + ak = 0ai+aj+ak=0) (GZEZ 新初一第一次测试 第四题) 在指定范围 [l,r][l, r][l,r] 内,求满足 ai+aj+ak=0ai + aj + ak = 0ai+aj+ak=0 的三元组的个数。 思路: 先预处理,时间复杂度是 O(n2)O(n^2)O(n2) ; 再查询,时间复杂度是 O(1)O(1)O(1) 。 预处理: 在确定了两端的数之后,中间的数 =−a[i]−a[j]= -a[i]-a[j]=−a原创 2022-03-22 12:56:07 · 282 阅读 · 0 评论 -
LG-P3049 [USACO12MAR]Landscaping S 题解
又是一道考试题 对一排泥土进行三种操作,使其变为目标状态,求最小花费代价。 请原谅我接下来奇怪的量词… 思路 大致方法: 很明显,求代价,就是用 dp 。但是,你会发现直接去推动态转移方程是很难的,所以,我们选择把泥土“量化”。 “量化泥土”: 我们把泥土按量进行排列,例如: 原数组是:1 2 3 4 ; 转移后是:1 2 2 3 3 3 4 4 4 4 。 这样一来, 我们就可以去处理 dp 数组 fff 了。 初始化 dp 数组: 我们定义 f[i][j]f[i][j]f[i][j] 表示用原创 2022-03-21 12:52:04 · 125 阅读 · 0 评论 -
LG-P4394 [BalticOI 2008]选举 Easy 题解
一道 01 背包的题。 题目概述 我们要从若干党中挑选几个党出来,组成一个联合内阁,使得: 内阁的党的总席位数要越多越好; 阁内党席位总数要超过(已给出的)所有党的席位总数的一半; 当其中席位数最小的党退出之后,其他阁内的党的总席位数要比总席位数的一半要少。 求解 在此题中,每一个党面临的问题只有被选或不被选。 这很明显,就是背包 dp。 我们当然是挑选席位数大的党选——这样删去它就不容易会出现阁内席位数仍大于总席位数一半的情况。 然后就是背包的板子了。具体可以见 P1048 采药 背包模板原创 2022-03-21 12:44:44 · 97 阅读 · 0 评论 -
CF632E Thief in a Shop 题解
思路 题目要问的,是 kkk 个物品最多能组成多少种不同的权值之和(每个数量不限)。 正着求当然很麻烦,但是反着解相对来说就简单多了。 所以我们可以将题目转化为: 求凑某个权值和最少要多少物品,如果最少个数比 kkk 要大,则这个权值和就无法凑出。 题目分析到这里,就不难看出是背包 dp 了。 代码实现 状态转移 我们用 dpidp_idpi 表示凑出权值和为 i 最少需要多少件物品。 01 背包问题这里不多阐述了。 则可以得到状态转移方程为:dpi←mindpi,dpi−aj+1dp_i \gets原创 2022-03-19 08:28:44 · 182 阅读 · 0 评论 -
【DSY-2117】摩尔庄园
2117: 摩尔庄园 从前,有一个地方叫作摩尔庄园。摩尔庄园里有 n 座房子,编号为1到n。房子与房子之间有隧道连接。由于建造者们很懒,它们只建了 n−1 条隧道,每条隧道长度为1。对于编号 i(i>1) 的房子,有一条连向编号为 ⌊i2⌋\left\lfloor\frac{i}{2}\right\rfloor⌊2i⌋ 的房子的隧道。隧道是双向的。对于每间房子,我们知道这间房子有 ci 份食物可供最多 ci 只拉姆们食用。 在这庞大的 n 座房子中,住着 m 只拉姆,编号从1到m。对于第 i 只拉姆原创 2022-03-18 13:09:05 · 167 阅读 · 0 评论