自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 P15133 [ROIR 2026] 最后的滑动窗口问题 题解

本题通过单调栈求出每个元素作为最小值的区间范围,利用差分思想将贡献拆分为三部分。将询问转化为前缀差形式,分两部分处理:第一部分按区间长度建事件,第二部分按左右端点建事件。均采用扫描线+树状数组维护二维偏序,结合坐标变换优化不等式约束,最终在 $O(n\log n + q\log n)$ 时间内完成所有查询。

2026-11-07 18:59:08 164

原创 P6400 [COI 2008] UMNOZAK 题解

本题通过枚举所有数位组合(不降序列),利用DFS生成所有可能的数位积 ≤ 10¹⁸ 的组合,共约219057种。对每种组合,从高位到低位贪心计数:当前位可取值范围通过二分确定,小于上限的数字可任意填充后续位,贡献为组合数乘以数量;等于上限时递归处理下一位。使用__int128防止溢出,预处理阶乘与10的幂。最终输出两组查询差值。时间复杂度依赖状态数,实际可过。

2026-11-07 18:58:25 162

原创 P11363 [NOIP2024] 树的遍历 题解

我怎么看了最难的一篇题解???饿啊。

2026-11-07 18:57:40 173

原创 AT_arc180_d [ARC180D] Division into 3 题解

本题要求将序列划分为三个连续子序列,使最大值之和最小。关键思路是分类讨论最大值的位置:若在中间,则答案为两端与最大值之和;若在左/右端,则需对剩余部分离线处理。通过单调栈维护区间最大值变化,并结合线段树支持区间加与单点修改,实现高效查询。整体复杂度 $O(n \log n)$,代码采用离线处理、ST表预处理及线段树优化,巧妙拆贡献求解。

2026-10-05 17:33:14 278

原创 题解:P11987 [JOIST 2025] 集邮比赛 4 / Collecting Stamps 4

本题通过将排列中相同数字视为左右括号,统计“右左”型配对(即未出现的 $(x,y)$)数量 $p_i$ 来衡量初始状态的不优程度。利用滑动窗口与线段树维护括号状态,实现 $O(n \log n)$ 预处理每个起始点的 $p_i$。查询时将 $p_i$ 排序,结合前缀最小值与后缀最小值优化,支持 $O(q \log n)$ 查询,整体复杂度 $O(n \log n + q \log n)$,高效解决集邮比赛问题。

2026-09-30 21:20:02 94

原创 P9196 [JOI Open 2016] 销售基因链 / Selling RNA Strands 题解

本题通过将基因库字符串 $S_i$ 映射为 $S_i#S_i$,询问 $P,Q$ 映射为 $Q#P$,转化为在映射后串中匹配基因库串的次数问题。利用 AC 自动机进行多模式匹配,构建 fail 树后通过 DFS 统计每个模式串出现次数,最终输出答案。时间复杂度为 $O(\sum |S_i| + \sum |P| + \sum |Q|)$。

2026-09-30 21:19:30 219

原创 P9527 [JOIST 2022] 洒水器 / Sprinkler 题解

本题利用深度限制 $D_k \leq 40$,通过维护每个节点子树中距离恰好为 $i$ 的点的标记 tag[x][i],实现高效修改与查询。修改时仅更新路径上祖先的特定距离标记,查询时暴力向上跳祖先并累乘标记。根节点特殊处理,避免逆元问题。时间复杂度 $O(n + qd)$,空间优化良好,适用于大规模数据。

2026-09-29 15:55:56 204

原创 题解:P12763 [POI 2018 R2] 诗集 Book of poetry

本题通过多次随机化与多种贪心策略组合,结合升序、降序及对称构造等排序方式,有效应对数据陷阱。核心思想是利用随机打乱+多轮贪心尝试(如队列模拟、对称填充等),在无法确定最优解时通过大量启发式策略覆盖可能情况,最终取得高分。代码通过30次随机+三种排序策略,显著提升鲁棒性,成功规避构造数据攻击,体现了“乱搞”算法在弱数据下的实用性。

2026-09-24 14:49:47 194

原创 P15576 [USACO26FEB] Good Cyclic Shifts G 题解

你说得对,逆序对性质确实很重要,可是我模拟赛时没发现但是用暴力分讨加 DS 创过去了。首先对于一个 aia_iai​,假如要将他移动到 iii 并让操作次数最少,每次移动都一定要使 aia_iai​ 更靠近 iii,那么每次操作都会使 f(p)−1f(p)-1f(p)−1,而我们只能操作 f(p)f(p)f(p) 次,所以我们一次多余的操作都不能有(即使 aia_iai​ 离 iii 更远)。首先贪心的操作就是每次从 aia_iai​ 中选择最小的 ai≠ia_i\not=iai​=i,将他往前移到 i

2026-09-24 14:49:10 166

原创 [SCOI2014] 方伯伯的玉米田 题解

本题通过动态规划求解最长不下降子序列的最大长度。关键观察是每次操作应作用于后缀,状态 $dp_{i,p}$ 表示前 $i$ 个数操作 $p$ 次后以 $i$ 结尾的最长不下降子序列。利用树状数组优化转移:对 $a_j \le a_i$ 部分用 $k+1$ 棵树状数组维护前缀最大值;对 $a_j > a_i$ 部分通过 $p + a_i = p' + a_j$ 转化为另一组树状数组查询。时间复杂度降至 $O(nk \log V)$,高效解决原问题。

2026-09-22 20:00:14 107

原创 题解:P15983 \[PA 2026] 列竖式 / Dodawanie

本题通过分析加法竖式中每位的进位关系,枚举每一位的合法状态(是否进位、是否需进位),利用动态维护候选左端点数量 cnt 与进位需求 now,从左到右扫描,统计所有合法子区间的个数。关键在于根据当前位的进位状态更新 cnt 与 now,确保进位链连贯性,最终累加满足条件的区间数。时间复杂度为 $O(n)$。

2026-09-22 19:59:40 158

原创 题解:AT_abc475_f [ABC475F] Rectangle Filling

本题通过根号分治优化,枚举矩形上下边界,剔除全黑列后,维护首尾行最右白格位置,统计可被替代的矩形数量。利用前缀和快速判断列是否全黑,最终答案为有效矩形数加一(含不涂)。时间复杂度 $O(hw\min(h,w))$,代码通过行列转置保证枚举维度最小化。

2026-09-22 19:59:05 152

原创 一个神秘题目

当 $ n $ 为偶数时,通过操作主对角线及左上角可使所有灯泡点亮;当 $ n $ 为奇数时,先操作主对角线点亮黑色部分,再对白色区域全部操作一次即可。利用黑白染色分析,每次操作仅影响同色灯泡,且奇数长度对角线无需额外修正。最终均可实现全亮。

2026-09-22 19:58:32 154

原创 P3646 [APIO2015] 巴厘岛的雕塑 题解

先按二进制位从大到小尝试是否能将其设为0,那么就需要判断某个数是否能作为答案。当 1≤n≤100,1≤A≤B≤n1 \le n \le 100,1 \le A \le B \le n1≤n≤100,1≤A≤B≤n 时,由于数据范围较小,尝试直接暴力dp。设 dpi,jdp_{i,j}dpi,j​ 表示能否将前 iii 个数分为 jjj 段,转移就暴力枚举 jjj 和前一个段的末尾,最后判断是否存在 dpn,i=1(A≤i≤B)dp_{n,i}=1(A \le i \le B)dpn,i​=1(A≤i≤B)

2026-09-11 21:47:39 80

原创 P7514 [省选联考 2021 A/B 卷] 卡牌游戏 题解

枚举卡牌正面或背面作为最小值,按 $a_i$ 排序后,利用前缀/后缀信息与二分查找,分别处理必须翻转的前缀和可选翻转的后缀。通过 ST 表快速查询区间最大值,结合贪心策略维护最优解。时间复杂度 $O(n \log n)$,需精细处理边界与状态转移。

2026-09-11 21:46:25 151

原创 「雅礼集训 2018 Day7」A 题解

本题通过拆位思想,将区间赋值操作转化为对每一位的0/1赋值。利用线段树维护区间最小值、最大值及惰性标记,每次修改仅在当前位不一致时递归下探,保证总递归次数为 $O(n \log^2 n)$。通过位运算优化与惰性传播,高效处理区间赋值与查询,最终实现卡常优化下的稳定解法。

2026-09-11 21:45:26 200

原创 「雅礼集训 2018 Day5」Convex 题解

本文介绍「雅礼集训 2018 Day5」Convex 的解法——神秘的回滚莫队。通过求凸包并按极角序重排点,利用双向链表维护凸包顶点顺序,结合回滚莫队仅支持删除与撤销删除的特性,高效处理区间内点集凸包面积查询。关键在于插入点时面积增量为该点与其相邻点构成的三角形面积,通过链表维护邻接关系,避免set查找开销,时间复杂度优化至 $O(n\sqrt{n})$,成功通过多组询问。

2026-09-11 21:44:55 185

原创 # P6109 [Ynoi2009] rprmq1 题解

给定一个n×n的矩阵,m次矩阵加,之后q次矩阵最大值查询。

2026-08-27 12:26:59 179

原创 「雅礼集训 2018 Day4」Divide 题解

很nb的构造。

2026-08-27 12:26:11 284

原创 「雅礼集训 2018 Day1」树 题解

注意到对于一棵树,结点 1 一定是结点 2 的父亲,那么树的最大深度一定是这两者的子树之一(此处结点 1 的子树不包含结点二的子树,此后结点 1 的子树简称为 A,结点 2 的子树简称为 B)。设dpij​表示有i个结点时最大深度为j的方案数。当最深的结点在 A 内时,有dpij​dpsj​×dpi−st​×s−1i−2​,其中dpsj​是A,dpi−st​是B,有tj(深度最深的在A),s−1i−。

2026-08-27 12:25:27 220

原创 CF526G Spiders Evil Plan 题解

给定一颗n个点的树,有边权,q次询问,每次询问用最多y组成的包含x的连通块的最大边权和。

2026-08-24 20:23:39 483

原创 「2017 山东一轮集训 Day3」第一题 题解

本文提出了两种组成正方形的方案,并给出了相应的计数方法。第一种方案是三条边用一根木棍和一条边用三根木棍,通过枚举木棍长度和统计满足条件的组合来计算方案数。第二种方案是两条边用两根木棍和两条边用一根木棍,同样通过枚举和统计组合来计算。代码实现了这两种计数逻辑,考虑了各种特殊情况如边长相等的情形,最终输出所有可能的正方形组合方案数。

2026-08-24 20:14:29 349

原创 「2017 山东一轮集训 Day2 / SDWC2018 Day1」Shadow 题解

坐标为 0,求出直线解析式的常数项即可。此时阴影即为交点形成的凸包,求面积可以剖成三角形用二位叉积求面积,最后记得。的坐标,最后按照Subtask1的方法求凸包面积即可。是题目给定的确定平面的 3 个点,此时这三个点的。的连线与水平面的交点,求交点很简单,由于水平面。不是单位向量所以要除以向量的模长)。我们首先要求出平面的正交基,设。与顶点的连线与平面的交点。那么此时可以先将所有点的。坐标,此时这个平面即为。与平面交点的三维坐标。所在直线上,所以交点。坐标为 0 水平面。光源至平面的垂直距离。

2026-08-24 20:13:57 337

原创 「2017 山东一轮集训 Day2」Pair 题解

注意:题目统计的是ai​的子序列,必须连续。

2026-08-22 14:00:03 366

原创 「2017 山东一轮集训 Day1」Sim 题解

注意:1 操作的S中的元素是。

2026-08-22 13:59:31 145

原创 「雅礼集训 2017 Day11」PATH 题解

在讲这题之前,先要知道一个概念——杨表。杨表就是一个由一些长度递减的行组成的一个类似表的东西。如图就是一个杨表的框架,每一行的长度都不超过上一行的长度。一个合法的杨表是将一些数填进格子内,使得每一行,每一列的数都是递增的。如图就是一个合法的杨表。杨表有一个经典的应用,一个有S个格子的杨表λ,将1∼S填进去的合法方案有多少种。我们定义勾长为hijai​−jbj​−i1,其中ai​bj​是第i行,第j。

2026-08-22 13:58:59 193

原创 「雅礼集训 2017 Day1」字符串 题解

先考虑如何快速判断一个模式串的子串在文本串内的出现次数,假设子串所在区间为li​ri​,则等价于计算文本串有多少个后缀与子串的LCP(最长公共前缀)长度≥ri​−li​1,那么可以想到建一个后缀数组,把文本串和模式串放进一个字符串,中间用特殊符号隔开(比如),就可以O1查询两个后缀的LCP。要查询所有满足条件的后缀,只需要在sa数组上二分出满足条件的左右界,其中属于文本串的前缀数量就是答案。

2026-08-22 13:58:27 215

原创 [ABC470G] ΣШX 题解

给定一个长度为N的序列A0≤Ai​≤N),求所有区间的mex(未出现的最小非负整数)。

2026-08-22 13:58:02 332

原创 P5298 [PKUWC2018] Minimax 题解

第一次自己做出黑。

2026-08-21 16:32:55 154

原创 P6773 [NOI2020] 命运 题解

给定一颗n个节点的以1有根树,每条边有权值ai​∈01,给定m个限制uv,保证u是v的祖先,要求u→v的路径上至少有1条边的权值为1,求满足条件的边权有多少种方案,对998244353取模。

2026-08-21 16:32:18 145

原创 题解:AT_agc020_f [AGC020F] Arcs on a Circle

看到题目数据范围,想到状压dp。由于题目中的线段位置为实数,难以进行转移,我们需要对线段的端点坐标进行离散化。那么要如何离散化才便于我们统计答案呢?假如我们要判断两条线段之间是否有重合部分,我们需要的数据是两个线段端点的坐标以及线段长度,线段长度为整数,思考一下,我们要如何记录坐标才能进行判断。假如我们只记录坐标的整数部分,会出现因为小数部分而无法重合的情况,也就是说我们需要找一个高效记录小数部分的方法。注意到,整数部分确定时,判断两个线段是否相交只需要知道,具体来说,将坐标离散化为n×c。

2026-08-21 16:31:47 155

原创 题解:AT_agc020_d [AGC020D] Min Max Repetition

先打表,二分出h为所有完全由同一个字母组成的子串的最短长度,注意到答案中前面一部分一定为多个A...A(h个A)B,后面一定为多个AB...B(h个B),中间是AB...B。因为要字典序最小,所以考虑计算A...AB最多有多少个。如果要判断一组nmh是否合法,需要满足条件minnm1h≥maxnm。所以我们可以二分出A...AB的最大数量,即删去mid×h个A和mid个B后后面是否合法,不过注意到前面的最后一个字符为B。

2026-08-21 16:31:14 174

原创 「2017 山东一轮集训 Day1」Sim 题解

注意:1 操作的S中的元素是。

2026-08-21 16:29:43 239

原创 题解:P6678 [COCI 2019/2020 #2] Popcount

这篇题解介绍了解决P6678 [COCI 2019/2020 #2] Popcount问题的四种方法: Subtask1:通过逐位处理计算二进制中1的个数,使用n-1次操作 Subtask2:优化方法,每次操作处理4位,减少操作次数到125次 Subtask3:采用类似线段树的分治思想,通过合并相邻段来统计1的个数,操作次数为O(logn) Subtask4:针对操作长度限制,使用高精度数字代替位运算表达式 每种方法都针对不同数据范围和操作次数限制进行了优化,最终目标是使任意非负整数A经过操作序列后变成其二

2026-08-20 20:50:48 206

原创 [NOI2015] 品酒大会 题解

这篇文章提出了一种基于分治思想的解法来处理字符串相似性及美味值计算问题。通过构建后缀数组和height数组,并利用ST表快速查询区间最小值及其位置,算法能够在分治过程中高效统计满足特定相似条件的子串对数。对于每个分治区间,通过查找最小height值的位置将区间分为两部分,递归处理的同时统计跨区间的子串对数及对应的美味值乘积最大值。最终,通过逆向累加得到各相似度级别的结果。该方法避免了常规解法的时间复杂度问题,提供了一种高效的计算途径。

2026-08-20 20:50:18 533

原创 题解:P10230 [COCI 2023/2024 #4] Lepeze

摘要 本文研究了正n边形三角剖分的操作问题。每次操作可以交换四边形对角线,目标是通过最少操作使所有边连接特定点x。研究发现最少操作次数等于初始不与x相连的边数p,且操作方案数可转化为树形结构的拓扑排序问题。通过分析三角剖分形成的树结构,推导出方案数公式为p!/(各子树大小的乘积)。使用树状数组高效维护动态修改和查询,时间复杂度为O(n log n)。代码实现支持动态边修改和查询操作。

2026-08-20 20:49:46 300

原创 题解:AT_abc453_e [ABC453E] Team Division

本文提出了一种解决ABC453E题"Team Division"的算法。题目要求将N个选手分成两组,满足每个选手对组员数量的限制[L_i, R_i]。算法核心是枚举每组人数p,通过预处理前缀和快速计算三种选手数量:只能分到A组(x人)、只能分到B组(y人)和可任意分配(k人)。当满足x+y+k=N且x+k≥p且y+k≥N-p时,方案数为组合数C(k,p-x)。预处理使复杂度降至O(n log n),主要耗时在计算组合数。最终对所有可能的p求和得到答案,注意处理n为偶数时的特殊情况。

2026-08-20 20:48:59 366

原创 题解:P4433 [COCI 2009/2010 #1] ALADIN

iL∑R​A×imodBi0∑R​A×imodB−i0∑L−1​A×imodBi0∑N​A×imodB注意到这个取模非常烦,想一下怎么把取模去掉,注意到amodb等价于a−b×⌊ba​⌋i0∑N​A×i−B×⌊BA×i​⌋)接下来就比较简单了,把前面A×i的部分提出来,后面的−B2NN1​A−Bi0∑N​⌊BA×i​。

2026-08-20 20:48:20 256

原创 AtCoder Beginner Contest 445(ABC445) A-F 题解

本文提供了AtCoder Beginner Contest 445(ABC445)A-F题的解法。A题通过判断字符串首尾字符是否相同解决;B题按题意模拟中心对齐;C题通过反图DFS处理自环点;D题使用优先队列处理最大巧克力尺寸;E题运用欧拉筛和质因数分解计算LCM;F题采用倍增和Floyd算法求解。各题解均附有提交链接,涵盖字符串处理、图论、数论和动态规划等算法。

2026-02-14 23:23:29 634

原创 题解:P14975 [USACO26JAN1] COW Splits B

摘要:本文分析了题目P14975 [USACO26JAN1] COW Splits B的解法。字符串S由"COW"、"OWC"和"WCO"三种循环移位组成。当N为奇数时无解,M=1时为平方串。由于S由三种字符组成,M最大为3。通过将字符串分成N/2对长度为3的子串进行比较,发现最长公共子串长度至少为2,因此M≤2。时间复杂度为O(N)。代码实现了这一逻辑,通过比较子串确定操作次数和字符分组。

2026-01-18 21:37:25 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除