- 博客(75)
- 收藏
- 关注
原创 (回滚莫队)洛谷 P7261 COCI 2009/2010 PATULJCI 题解
个小矮人在挖矿时,白雪公主在玩电脑,翻看图片,挑选漂亮的图片。图片中每个小矮人都有一顶彩色的帽子,有。如果一张照片上有一半以上的帽子是同一种颜色,那就是漂亮的。换句话说,如果图片上有。其他题解还有随机化 + upper_bound 的,比较厉害。不过这一题我打算用来复习回滚莫队。这一题如果用普通莫队,就是维护区间桶之后,枚举所有颜色,看看哪个颜色大于。个小矮人有相同颜色的帽子,那就是漂亮的图片。张图是否漂亮,如果漂亮,以什么颜色为主。区间查询个数,维护桶,还是莫队。个小矮人在森林里,当。
2025-04-01 10:53:00
581
原创 (莫队、值域分块)洛谷 P4867 Gty的妹子序列/P3730 曼哈顿交易 题解
给出一个有n个数的序列,对该序列有m个询问,对于每次询问,输出区间lr内,权值在区间ab中的权值的种类数。
2025-03-31 15:14:45
653
原创 (记搜轮廓线 dp、哈希)洛谷 P4363 九省联考 2018 一双木棋 题解
现在他们想知道,在给定的棋盘上,如果双方都采用最优策略且知道对方会采用最优策略,那么,最终的结果如何?或者说对于这种问题,典型的,我们可以使用“轮廓线 dp”,因为在这题有明显的轮廓线特征。看看下棋规则:“一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子”。落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子。在游戏结束后,菲菲和牛牛会分别计算自己的得分:菲菲的得分是所有有黑棋的格子上的。列的格子上的两个整数记作。
2025-03-29 08:13:30
777
原创 (区间trick、线段树)SMOJ 团队/CF377D Developing Game 题解
这个题一眼就看出端点排序、分段贡献,但是考场就是调不出来,又是 WA 又是 RE 的。非常粗心,还需沉淀。
2025-03-28 10:56:22
851
原创 (分块思想、最短路)洛谷 P3645 雅加达的摩天楼
如此跳跃,不妨看作直线上的“最短路”,一只 doge 跳到另外一只 doge 的摩天楼后,“换乘”另一只 doge 继续跳,那就是 bfs 了。注意不能再原来的“直线”上直接建,不然本来这个地方没有 doge 在这里你又让他“换乘”。的 doge 是所有 doge 的首领,它有一条紧急的消息要尽快传送给编号为。如果我们记录其它的 doge 的具体信息再建边,那和。比较小的话,那就要建非常多的边,这显然不是我们想要的。的出口单向边,这样就可以实现 doge 的“换乘了”。的双向边,就不从起点开始枚举了。
2025-03-27 15:48:17
920
原创 (分块)洛谷 P4168 蒲公英 题解
你需要回答区间里出现次数最多的是哪种蒲公英,如果有若干种蒲公英出现次数相同,则输出种类编号最小的那个。暴力就是离散化之后搞一个桶记录出现次数,查询最大的编号,时间复杂度。这种区间统计的题目,可能一大段区间要被一个一个地遍历很多次,所以可以考虑用。在乡下的小路旁种着许多蒲公英,我们把所有的蒲公英看成一个长度为。查询就是同块直接遍历加桶,不同块就统计两边,也就。内的数据(以离散化后的数据为准,上界为。,那么我们就想查询的时候,计算完。最终的询问区间为计算后的。为一个正整数,表示第。棵蒲公英的种类编号。
2025-03-21 10:37:15
1011
原创 (分块思维)洛谷 P4109 HEOI2015 定价 题解
组测试数据,如果荒谬度最低的价格不唯一,输出最小的那个。倍数,相同的还有末端的,以防还有荒谬度更小的。现在,你要出售一样闲置物品,你能接受的定价在。范围内,你想要给出一个荒谬度最低的价格。数量较少的数,也就是可以钦定一个数。中可以跳过很多数,从而计算是。,我们来个口胡的推导:里面只能。的倍数的数(跳过的肯定没有。因为外层还有个数据组数。是较优的,实测能过。
2025-03-20 15:16:46
611
原创 (分块)洛谷 P3203 弹飞绵羊 题解
个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,L 可以修改某个弹力装置的弹力系数,任何时候弹力系数均为正整数。但是写完代码,兴冲冲交上去,TLE 3 个点。既然是跳跃,那就能联想到,要搞一个类似链表的数组,我们考虑对。如果想要一个老哥做,作者老矣不能饭否,去学 LCT 吧。个装置,每个装置设定初始弹力系数。,其实可以直接扫过去的,期望复杂度。的弹力装置的系数被修改成。个装置作分块处理,维护。个装置时,它会往后弹。个装置,则绵羊被弹飞。个装置,装置的编号从。个装置的初始弹力系数。
2025-03-17 16:37:37
682
原创 (线段树)洛谷 P4215 熊孩子 题解
属于哪个熊孩子的区间内。那我们记录一段区间内有哪些熊孩子,扔上线段树比较好解决。那我们考虑维护区间和,每次操作就是单点减。在线段树上,如果一段区间的区间和减到。中的所有气球都已经被踩爆了,他就会非常高兴(显然之后他一直会很高兴)。如果某一个时刻,一个熊孩子发现自己选定的盒子区间。,那么覆盖这个区间的所有熊孩子的区间分管数减。次操作,每次从某一个盒子里把一个气球踩爆。询问每次操作过后会有多少个熊孩子很高兴。个熊孩子每个人都指定了一个盒子区间。每次操作对下面的询问有影响。个盒子中有尚未被踩爆的气球。
2025-03-13 16:52:02
861
原创 (轮廓线 dp)UVA11270 Tiling Dominoes
或者 留空 或者 有上面的竖块伸下来(那么就不再考虑下面填一个竖块能伸上去的情况了)。对应的全部填横块的)。有一个快速枚举子集的 trick,具体可以见我的。就可以补到下面来,这时候再 check 一下,有没有连续奇数个。的矩形网格,用1×2多米诺骨牌完全平铺。把上一行状态和本行状态与起来,那么上一行填了竖块的的状态。,就不能用横块填满,那么下面的行就不能补上空着的这个了。如果合法,就加上上一行状态为。或者 是奇数就不可能填完的,这很显然。,里面给了一个粗略的分析。那么就枚举上一行的状态。
2025-03-11 11:21:43
532
原创 (斜率优化)洛谷 P2900 SP15086 USACO08MAR Land Acquisition 题解
他发现,将这些土地分成不同的小组来并购可以节省经费。给定每份土地的尺寸,请你帮助他计算购买所有土地所需的最小费用。如果 FJ 单买一块土地,价格就是土地的面积。但他可以选择并购一组土地,并购的价格为这些土地中最大的长乘以最大的宽。单增,和玩具装箱同一类型,维护单调递增斜率,最优决策扔队首即可。为关键字排序,不做任何处理,那么考虑一个朴素的 dp,设。如此一番维护下来,我们得到一个非常优美的性质:所有土地的。来购买,不必再产生贡献,直接删去土地。,保证土地的长和宽不超过。的土地,他只需要支付。
2025-03-07 21:43:49
758
原创 (数学题)洛谷 P2567 SCOI2010 幸运数字 题解
,于是他又定义了一种“近似幸运号码”。lxhgww 规定,凡是“幸运号码”的倍数都是“近似幸运号码”,当然,任何的“幸运号码”也都是“近似幸运号码”,比如。lxhgww 也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字。以内的幸运数字,用 dfs 绰绰有余,并把有倍数关系的幸运数字去重,只留下最小的那个(比如。的时候有相乘操作,开 long long 数据恶心点就爆,那就要用 long long。但是这种“幸运号码”总是太少了,比如在。内,“近似幸运号码”的个数。都是“近似幸运号码”。
2025-03-07 20:33:03
689
原创 李超线段树与斜率优化系列 题解
简单介绍一下李超线段树。lrkkxk通俗的讲,就是维护一个坐标系内,加入给定端点的线段,查询某个点x的最大/小y值。对于修改与查询操作敬请自行学习了(其实模板不算很长,就是拿线段树改造一下,写一个比较两条线段在某点比较大小的布尔函数即可)李超线段树具有这种维护线段的功能,在做斜率优化相关题目时,简直就是万金油。在做斜率优化题目,我们常推导出某个斜率slope和某个量的大小关系。如果这个量x具有单调的性质,就可以使用单调队列维护,但是如果它不单调就不能用单调队列来做了。
2025-03-06 16:47:35
1179
原创 (斜率优化)洛谷 P3648 APIO2014 序列分割 题解
写了挺多斜率优化的题目了,这道(差点)就速切了,原因还是单调队列维护斜率的写法出锅。你正在玩一个关于长度为 nnn 的非负整数序列的游戏。这个游戏中你需要把序列分成 k+1k + 1k+1 个非空的块。为了得到 k+1k + 1k+1 块,你需要重复下面的操作 kkk 次:选择一个有超过一个元素的块(初始时你只有一块,即整个序列)选择两个相邻元素把这个块从中间分开,得到两个非空的块。每次操作后你将获得那两个新产生的块的元素和的乘积的分数。你想要最大化最后的总得分,并知道得到最大总分的方案。如果有多种方案使得
2025-03-05 19:32:29
1113
原创 (斜率优化)洛谷 P8726 蓝桥杯 2020 省 AB3 旅行家 题解
主要是因为,在洛谷大部分题解都是写李超线段树优化的,看到标签我也被诈骗了,推完式子才发现具有单调的良好性质。遂写一篇典型的斜率优化 dp 的题解。
2025-03-04 20:28:16
974
原创 (贪心、斜率优化)洛谷 P2120 ZJOI2007 仓库建设 题解
对于没有建立仓库的工厂,其产品应被运往其他的仓库进行储藏,而由于 L 公司产品的对外销售处设置在山脚的工厂。单调递增,那么和玩具装箱是同一类,维护斜率单调递增,新建决策点扔到队首。请你帮助 L 公司寻找一个仓库建设的方案,使得总的费用(建造费用 + 运输费用)最小。假设建立的仓库容量都都是足够大的,可以容下所有的产品。),当然运送产品也是需要费用的,一件产品运送一个单位距离的费用是。由于地形的不同,在不同工厂建立仓库的费用可能是不同的。个工厂,由高到低分布在一座山上,工厂。的答案,找费用最少得“集中地”。
2025-03-04 11:45:26
639
原创 (二分)洛谷 P11830 省选联考2025 幸运数字 题解
然后套路地用两个动态数组分别季度左右端点的信息,以便进行枚举过程中的信息修改。的转移中,使用先前维护的动态数组,分别加入和删除当前中位数和不符合条件的中位数的信息:从。小 Y 想知道在满足以上条件的情况下,有多少个数可能成为小 X 的幸运数字。个二元组的具体数值是多少,但她得知了每个数的范围。考虑从题目给的“个数区间”下手,如果可以维护两对区间:小于。因为只求个数,不需要知道具体哪一个,而且注意到题目给的。使用离散后的数组就可以计算。但是题目中给的是个数的区间,那要怎么办呢?的最多数量(比较明显的贪心)。
2025-03-03 20:13:24
1254
原创 矩阵 trick 系列 题解
一个有向图有n个节点,编号1至n。给出一个二维数组A1...n1...n,若Aij1说明节点i到节点j有一条有向边;若Aij0则说明节点i到节点j没有边。求长度为k的路径的方案数。答案模1097。
2025-02-27 22:01:08
817
原创 (斜率优化)洛谷 P3628/SP15648 APIO2010 特别行动队 Commando
作为部队统帅,现在你要为这支部队进行编队,使得所有特别行动队的修正战斗力之和最大。编号,你要将他们拆分成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号应该连续,即为形如。所有的队员都应该属于且仅属于一支特别行动队。由上一篇题解的经验,考虑使用斜率优化掉找。通过长期的观察,你总结出对于一支初始战斗力为。单增,由下图,扔到符合条件区间的尾巴去。名预备役士兵组成的部队,士兵从。,一支特别行动队的初始战斗力。为队内士兵初始战斗力之和,即。的特别行动队,其修正战斗力。的士兵的初始战斗力为。
2025-02-26 19:43:48
780
原创 (斜率优化)洛谷 P3195 HNOI2008 玩具装箱 题解
同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物。P 教授不关心容器的数目,他可以制作出任意长度的容器,甚至超过。,那么其斜率应呈上图所示,否则就网上顶,斜率越来越大,不满足式子。制作容器的费用与容器的长度有关,根据教授研究,如果容器长度为。个玩具放到一个容器中,那么容器的长度将为。呈单调,因此考虑使用本专题——斜率优化。因此斜率单调减,用个单调队列维护即可。在一个一维容器中的玩具编号是连续的。,即上文所推式子,那么满足。先考虑朴素的 dp,令。如果在一个坐标系上,把。
2025-02-26 16:16:42
911
原创 (单调队列优化)洛谷 P1776 宝物筛选 题解
小 FF 对洞穴里的宝物进行了整理,他发现每样宝物都有一件或者多件。他粗略估算了下每样宝物的价值,之后开始了宝物筛选工作:小 FF 有一个最大载重为。为了避免出现买东西出现余数剩余,使所设状态成为“恰好”,我们可以考虑对余数分组:对相同余数开一个单调队列,将重量。小 FF 希望在采集车不超载的前提下,选择一些宝物装进采集车,使得它们的价值和最大。,我们发现买东西重量增加同时价值单调增,于是可以考虑使用单调队列优化 dp,把枚举。种宝物,每种宝物的价值为。的采集车,洞穴里总共有。,能使价值最大的重量下标。
2025-02-25 20:19:05
673
原创 (单调队列优化)SMOJ 松果/洛谷 P3957 NOIP2017普及 跳房子 题解
有n棵松果树从左往右排一行,松鼠桃桃现在在第一棵松果树上。它想通过跳跃,从一棵树跳到另一棵树上,从而吃完一棵树上所有的松果。第i棵树上有松果ai个,与起点0距离为bi。松鼠的体力有个上限,每次不能跳的太远,最远距离为d,也不能跳太多次,最多跳m次。它最多能吃到多少个松果?
2025-02-25 11:50:12
997
原创 (单调队列优化)P2254 NOI2005 瑰丽华尔兹 题解
列的矩阵,矩阵中的某些方格上堆放了一些家具,其他的则是空地。钢琴可以在空地上滑动,但不能撞上家具或滑出舞厅,否则会损坏钢琴和家具,引来难缠的船长。每个时刻,钢琴都会随着船体倾斜的方向向相邻的方格滑动一格,相邻的方格可以是向东、向西、向南或向北的。的顺序遍历,如果遇到障碍物或边界就可以直接 break,因为之后的会被挡住,就不能这个方向转移过来。维护 dp 的最大值和步数起始点,维护队头最优,这样还可以把时间段维度。依次表示北、南、西、东,即矩阵中的上、下、左、右)。的最大移动距离,考虑分别从。
2025-02-24 21:51:17
837
原创 (状态优化)SMOJ 中国移动/洛谷 P7685 SPOJ703/5638 CEOI2005 Mobile Service系列 题解
如果某个地方有一个请求,某个服务员必须赶到那个地方去(那个地方没有其他服务员),某一时刻只有一个服务员能移动。被请求后,他才能移动,不允许在同样的位置出现两个服务员。公司必须满足所有的请求,目标是最小化公司花费,并输出每次请求提供服务的服务员编号。我们发现,每个请求之后,三个服务员中,肯定有一个服务员在请求位置。,知道了其中两个编号,那么另外一个就是唯一的。但是看到空间限制无比的小,因此状态下标那么多,肯定开不下。,因此我们尝试从这里下手,缩减状态。数组,就可以输出答案了。之后,其他两个服务员所在的位置。
2025-02-24 19:38:55
871
原创 (贪心、线段树优化)洛谷 P4644 USACO05DEC Cleaning Shift/AT_dp_w Intervals 题解
约翰的奶牛们从小娇生惯养,她们无法容忍牛棚里的任何脏东西。约翰发现,如果要使这群有洁癖的奶牛满意,他不得不雇佣她们中的一些来清扫牛棚,约翰的奶牛中有n头愿意通过清扫牛棚来挣一些零花钱。由于在某个时段中奶牛们会在牛棚里随时随地地乱扔垃圾,自然地,她们要求在这段时间里,无论什么时候至少要有一头奶牛正在打扫。需要打扫的时段从某一天的第st秒开始,到第en秒结束。注意这里的秒是指时间段而不是时间点,也就是说,每天需要打扫的总时间是en−st1秒。
2025-02-22 15:58:05
669
原创 (树形 dp)SMOJ 无向图染色/洛谷 P7201 COCI 2019/2020 #1 Džumbus 题解
元,你应该如何染色,使得“黑色开心”结点的数量最多?输出最多的黑色开心”结点的数量。每一个问题都是新问题,此时的无向图的结点初始化都是白色。个结点染成黑色,而且它的朋友当中,至少也有一个结点是黑色,那么第。个结点来说,与它直接有边相连的结点被称为结点i的朋友。因为要求最多可以创造多少黑色开心节点,所以不妨对。新染色或者都染,那么以此类推即可,记得加上。是黑色且开心(即周围至少有一个黑色),是黑色但不开心(及周围没有黑色节点)。个结点就是“黑色开心”结点。是白色或黑色开心,都不会被。
2025-02-21 10:59:16
796
1
原创 (树形 dp)洛谷 P1272 重建道路 题解
个结点,那么至少要删除多少条边之后,使得存在一颗子树,该子树恰好有。个节点,所需切断最小边数。为根的一整棵子树,需要分离。接下来想一下怎么分离出恰好。先分离父亲,再在子树内分走。
2025-02-20 16:07:28
366
原创 (树形 dp)洛谷 P2899 USACO08JAN Cell Phone Network/P2458 保安站岗 题解
给出一个树,有n个结点,结点编号从1至n。假如在第i个结点建立一个信号塔,那么与第i个结点有边相连的结点就能接受到信号,当然第i个结点本身也能接受到信号。问题是:至少要在多少个结点建立信号塔,才能使得所有的结点都能接收到信息。1≤n≤100。
2025-02-19 20:53:56
675
原创 (记搜轮廓线 dp)SMOJ 一笔画/洛谷 P7171 COCI 2020/2021 #3 Selotejp 题解
给出 n 行 m 列的点阵,每个点是一个字符: “.” 或 “#” ,其中“#”表示该点是障碍物。现在小毛的问题是: 他最少要画多少笔才能把点阵里所有的“.”都覆盖完毕(被小毛画到的点就会被覆盖)。小毛每次只能在某一行或某一列画,小毛当然想一笔就把某一行或某一列画完,但很遗憾,在任何时候都不允许小毛画的那一段点阵含有障碍物。还有一点更奇怪: 已经被画过的点,不能重复被画。问小毛最少要画多少笔?0nm≤15。
2025-02-18 21:56:21
1245
原创 (线段树)SMOJ 转盘/P6357 COCI 2007/2008 #3 REDOKS 题解
前面做过那么多势能线段树,肯定想要用势能线段树来做。然而发现这是一个区间修改(区间加),那。那么其他就是线段树的基本操作了。建树时每个数位上的数,桶置为。的区间和,并在查询结束后将区间里的每一个数都。表示修改次数,每次修改操作把该区间的。就很难搞最大值,而且修改次数就是。,非常少,用一个桶来维护绰绰有余。但是我们发现,数字出现的范围是。:每次先把原来桶复制一份到。次区间查询,每次查找区间。之间的任意一个,下标从。次修改,集成为一个函数。请输出每次查询的区间和。于是我们考虑维护区间中。,等着我们的就是T飞!
2025-02-18 21:19:52
807
原创 AT_abc199_e Permutation
一个队伍满足所有条件怎么判断,其实时间复杂度已经不成问题。个学生从左往右排成一行形成队伍,要满足如下所有。个条件的队伍有多少种不同的方案。个学号,看看是否恒有学生个数。学生当中,学号小于等于。很小,想到状压dp。最后将子集状态相加。
2025-02-18 11:54:50
808
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人