- 博客(32)
- 收藏
- 关注
原创 CSP-J/S 2025 游记
摘要 本文记录了作者参加CSP-J/S 2025竞赛的备考过程和参赛经历。从校赛失利开始,详细描述了各场比赛的解题思路和失误,包括初赛估分84.5分、国庆期间的学习安排,以及多场训练赛的题目分析与得分情况。重点记录了复赛两天的情况:Day1发挥出色,四题全AC;Day1.5则表现不佳,特别是在T2题上因算法选择失误丢失52分。最终估分206分,表达了希望获得奖项的愿望。全文展现了选手在竞赛中的思考过程、技术成长和心态变化。
2025-11-01 22:16:53
405
原创 题解:CF2150B Grid Counting
本文介绍了一种解决CF2150B Grid Counting问题的算法。通过分析题目限制条件,确定必须选择(1,1)和(1,n)位置的格子,并推导出其他可选格子的位置模式。算法采用倒序处理的方式,维护可放置黑色格子的数量cnt,当cnt小于所需值时判定无解,否则计算组合数累积答案。关键点在于将问题转化为组合数学问题,使用乘法原理和组合数公式求解,保证了时间复杂度为O(n),并通过预处理阶乘及逆元优化计算效率。
2025-10-30 23:04:55
277
原创 题解:P2519 [HAOI2011] problem a
该题解探讨了HAOI2011竞赛中的成绩区间分配问题。通过将每个学生的成绩区间转换为[l_i, r_i+1)的形式,建立边长为区间人数与长度最小值的有向图。解法使用差分约束思想,对区间排序后通过动态规划计算最长路,最终得出最少说谎人数为n减去最大合法区间人数。代码实现了区间预处理、排序和DP求解,时间复杂度为O(n log n)级别。
2025-10-30 23:04:18
408
原创 题解:P14309 【MX-S8-T2】配对
摘要:该题解针对树形结构中的节点配对问题,提出当子树内黑色节点为偶数时可内部匹配,奇数时需外部连接的处理方法。通过动态规划记录子树内节点颜色修改情况,计算最小边权值。核心思路是根据黑色节点奇偶性决定边贡献,并利用DP优化求解。最终输出考虑总黑色节点数奇偶性决定最优解。
2025-10-27 23:05:22
314
原创 题解:P14307 【MX-J27-T4】点灯
这篇题解介绍了如何解决点灯问题。主要思路是:通过分析发现,在t时刻到达某点后,t+2k时刻也能到达该点,因此可以跑奇偶最短路。算法实现时,用优先队列处理每个点的奇偶到达时间,最后检查所有点是否都能在奇或偶时刻到达,并输出最小时间乘以单位时间耗电量。当无解时输出-1。
2025-10-27 23:04:48
219
原创 题解:P7989 [USACO21DEC] Bracelet Crossings G
本文介绍了解决USACO竞赛题P7989的思路和代码实现。该题要求判断多条手链是否相交,关键在于分析每条垂直线上的颜色分布情况。作者通过多个数组记录颜色位置关系,并详细说明了判断条件:若某种颜色同时出现在另一颜色的内部和外部则非法,还需检查颜色是否完全包围。代码中使用了多个辅助数组进行状态记录和合法性验证,最终输出判断结果。
2025-10-21 22:04:25
432
原创 题解:P14174 【MX-X23-T4】卡常数
本文提出了一种贪心算法来解决序列选择问题。核心思路是将每个序列中的数按递减比例排序,优先选择比例大的数进行减法操作。通过预处理计算每个序列在不同减法次数下的结果,并维护一个优先队列来动态选择最优操作。最终算法的时间复杂度主要取决于优先队列的操作,能够高效地找到全局最优解。该方法巧妙地将贪心策略与动态数据结构结合,适用于大规模序列处理场景。
2025-10-06 21:52:18
159
原创 题解:P10191 [USACO24FEB] Test Tubes S
本文提出了一种解决P10191问题的策略,主要思路是通过合理合并液体来优化操作步骤。作者观察到题目中只有两种液体和三个容器,因此设计了以下算法: 边界条件处理:当两个试管都只剩一种液体时结束操作,但要检查烧杯中是否有残留液体。 特殊情形处理:当任一试管为空时,将另一试管的液体倒入空试管。 常规操作:优先合并顶部液体相同的容器,根据液体量选择合并方向,并使用烧杯作为中转。 代码实现中创新地使用了unique函数去重,并提供了详细的分类讨论和操作步骤。最终通过输出操作序列来解决问题,适用于大规模数据输入。
2025-10-05 20:33:39
190
原创 P10806 [CEOI 2024] 洒水器 题解
题目要求设计洒水器转向方案,使所有花都能被浇到且喷水强度最小。摘要如下: 本题采用二分答案结合贪心策略。首先二分喷水强度k,关键在于如何判断k是否可行。初始贪心思路是:每个洒水器优先向左转浇未浇的花,否则向右转,但存在缺陷(如9分)。改进后考虑连续向左旋转的情况,当相邻洒水器可覆盖彼此区域时调整转向(73分)。最终解法从后往前处理连续向左转的洒水器,确保最优覆盖,通过二分找到最小k值并输出转向方案。时间复杂度为O(n log(1e9))。
2025-10-03 23:53:32
391
原创 AT_abc422_f [ABC422F] Eat and Ride 题解
摘要 本文介绍了AT_abc422_F题"Eat and Ride"的解题方法。该题通过BFS搜索结合双条件优化策略求解:维护每个节点的最小燃料消耗和最小体重两种状态,舍弃同时劣于两种最优状态的路径。这种优化使得算法高效运行,仅需29ms即可通过测试。代码实现中使用了队列进行BFS遍历,并动态更新节点的最优状态,最终输出到达每个节点的最小燃料消耗值。
2025-09-11 22:39:58
1037
原创 题解:P2624 [HNOI2008] 明明的烦恼
不会prufer序列的请右转,先将prufer序列掌握再做这题。设有n个节点,degi为每个节点的度数,由∏i1ndegi−1n−2但是这题只给了我们部分节点的度数,要怎么办呢?我们可以先算题目给定度数的节点对方案数的贡献,设sum为有度数的节点的degi−1总和,即为∑i1ndegi−1(不包括没有度数限制的节点),sum就是这些有度数限制的节点在这颗树的pruf。
2025-08-26 18:50:50
432
原创 AT_abc418_d [ABC418D] XNOR Operation 题解
本文提出了一种高效解决XNOR操作问题的算法。通过分析字符串中1的个数k和区间长度l的奇偶性关系,发现最终目标要求k和l的奇偶性相同。利用动态规划思想,将状态压缩为两个变量a1和a2,分别记录满足和不满足奇偶性条件的区间数。遍历字符串时,根据当前字符是0或1更新这两个变量:遇到0时交换并递增a2,遇到1时直接递增a1。最终统计所有满足条件的区间数,时间复杂度优化至O(n)。关键代码仅需维护两个变量并在遍历中累加结果。
2025-08-18 13:23:40
364
原创 题解:P4777 【模板】扩展中国剩余定理(EXCRT)
本文介绍了如何利用扩展中国剩余定理(EXCRT)解决非互质模数的同余方程组问题。通过将两个同余方程转化为不定方程,使用扩展欧几里得算法求出通解,最终合并为单一方程。代码实现展示了这一过程,关键步骤包括求解公约数、调整解的范围,以及逐步合并所有方程。该方法有效解决了传统中国剩余定理无法处理非互质模数的情况,最终输出最小非负整数解。
2025-08-14 21:54:04
674
原创 详解动态开点线段树
本文介绍了动态开点线段树及其在解决CF915E问题中的应用。由于数据范围过大(n≤1e9),传统线段树无法直接使用。动态开点线段树的核心思想是只创建操作中实际需要的节点,而非预先构建完整结构。文章通过图解展示了动态开点的过程,并提供了关键代码实现,包括修改操作和pushdown处理。最后给出了完整代码,并指出动态开点技术在可持久化线段树中的重要性。这种方法有效解决了大区间范围下的线段树实现问题。
2025-08-08 13:14:55
858
原创 AT_abc409_e [ABC409E] Pair Annihilation
题目摘要:AT_abc409_e [ABC409E] Pair Annihilation 的解法。给定一棵树,节点上有电子(可能为负),电子会朝根节点移动并湮灭。通过换根DP发现答案与根的选择无关,因此可以任选根节点计算。定义f[i]为子树电子集中到i的能量消耗,g[i]为集中后的电子数。DFS遍历树,计算f和g数组,最终结果即为f[1]。注意要使用long long避免溢出。
2025-06-08 21:42:45
709
原创 AT_abc408_d [ABC408D] Flip to Gather 题解
该题解提出了一个动态规划解决方案来处理字符串变换问题。定义三维状态dp[i][j][k]表示前i位中当前位为j且前面是否有1的最小操作次数。通过三种转移方程分别处理:1)当前位为0且前面无1;2)当前位为0且前面有1;3)当前位为1的情况。最终取三种合法状态的最小值作为答案。算法时间复杂度为O(n),适用于大规模输入。代码使用C++实现,处理每个测试用例时初始化dp数组并进行状态转移。
2025-06-02 22:09:02
978
原创 题解:AT_abc406_c [ABC406C] ~
摘要本题解针对AtCoder ABC406C问题,要求找出满足特定递增递减条件的子序列数量。通过预处理计算每个位置作为峰值/谷值的前缀和,然后枚举可能的起点,使用二分法确定终点区间范围,统计符合条件的子序列数。核心思路是在保证恰好存在一个峰和一个谷的条件下,高效计算所有可能区间的贡献值。该算法时间复杂度为O(n log n),适用于给定的输入规模。
2025-05-28 22:37:45
471
原创 [ABC405E] Fruit Lineup 题解
摘要本题解给出了[ABC405E] Fruit Lineup问题的组合数学解法。核心思路是将橘子和葡萄插入苹果和香蕉之间,定义$dp_i$表示橘子的摆放方案数。利用组合数公式计算将橘子和葡萄分配到特定位置的可能情况,最终对所有可能的$i$求和得到答案。预处理阶乘后,通过快速幂和模逆元优化组合数计算,确保算法高效性。时间复杂度主要取决于阶乘预处理。代码简洁,思路清晰。
2025-05-27 21:40:39
995
原创 [USACO24FEB]Lazy Cow P题解
本文提出了一种解决[USACO24FEB] Lazy Cow P问题的线段树解法。通过分析发现任务分配越均匀越好,且任务数量呈现单调不降的特性。主要思路:当新需求到来时,选择合适的pos位置将其后面所有时刻"填平";使用二分查找确定pos位置;通过线段树维护任务数量和前缀和;处理m时刻后的多余任务;使用光速幂优化3的幂次计算。该方法利用线段树高效处理区间操作和查询,时间复杂度为O(q log m),其中q是查询次数,m是最大时刻。代码实现中包含了线段树的各种操作和二分查找的实现细节。
2025-05-27 21:39:30
831
原创 [USACO24FEB]Minimum Sum of Maximums P题解
摘要本文提出了一种解决USACO24FEB最小化最大值和问题的动态规划方法。关键思路是通过将数组元素有序排列来最小化相邻元素的绝对差之和。算法使用区间DP来处理分段问题,其中f[l][r][j]表示区间[l,r]填满状态j的最小代价。主要步骤包括处理边界条件、划分固定块、对未固定元素排序,并通过三种转移方式(保留边界、合并段、包裹段)进行状态转移。最终时间复杂度主要由区间DP和状态转移决定,适用于中等规模输入。
2025-05-27 21:37:34
1005
原创 [USACO24FEB]Infinite Adventure P题解
摘要本文提出了一种解决图上行走问题的倍增算法。通过预处理节点间的跳跃信息,利用动态规划数组记录不同步数和日期模数下的可达节点。当节点周期不同时,采用分层处理策略优化时间复杂度。预处理阶段复杂度为O(N(logT+logΔ)),查询阶段为O(Q logT(logT+logΔ)),适用于大规模数据。算法核心在于高效利用倍增思想进行路径压缩,并通过巧妙设计避免超时问题。代码实现中采用动态内存分配以节省空间,确保在大数据量下仍能高效运行。
2025-05-27 21:36:16
1019
原创 [ABC407F] Sums of Sliding Window Maximum 题解
摘要本文提出了一种高效解决"滑动窗口最大值之和"问题的方法。利用单调栈预处理每个元素的前驱大数和后继小数位置,将问题转化为计算每个元素在特定区间的贡献。通过分析贡献规律,提出了一种基于差分前缀和的优化算法,将时间复杂度从O(n²)降低至接近线性。该方法巧妙地将元素贡献分解为多个层次,利用前缀和数组累计每个层次的贡献,最终高效计算出所有窗口大小的答案。代码实现简洁且高效,通过了所有测试点。
2025-05-27 21:34:12
847
原创 P12424 【MX-X12-T7】「ALFR Round 5」地铁(Easy Version) 题解
摘要:本文分析了地铁线路交叉问题(Easy Version)的解法。通过将线路分为两类(左上到右下和左下到右上),定义交叉点无效点数量为$w$,推导出覆盖点数公式$(x+y)(n+m-1)-w$。进一步分析两类交叉情况(不同方向线路和同向线路起点交叉),得出$w=xy+x(x-1)+y(y-1)$。最终通过数学推导得到答案公式$\lceil 2 \times \frac{n+m-\sqrt{n^2+m^2-nm}}{3} \rceil$,并给出代码实现。
2025-05-27 21:32:54
629
原创 题解:P12420 【MX-X12-T3】「ALFR Round 5」变换
摘要:该题解分析了位运算性质,发现x只能是m所包含的2的幂次之和。通过计算a数组异或和,检查哪些m的二进制位可以被补足。关键点是:若所有a_i都含有某一位,则该位无法被补足。代码使用位运算高效处理,注意避免endl导致超时。时间复杂度为O(n)每测试用例。
2025-05-27 21:31:13
571
原创 题解:AT_abc398_f [ABC398F] ABCBA
这道题解提供了两种方法使字符串回文:哈希和KMP。主要思路是将字符串反转后拼接到原字符串前面,通过求最长公共前后缀来构造回文串。KMP解法使用next数组计算,代码展示如何反转字符串并拼接,最终输出处理后的回文结果。作者提到比赛时因误解英语术语而耽误时间。
2025-05-27 21:29:47
443
1
原创 题解:P11914 [PA 2025] 上班 / Praca
摘要该题解针对P11914题目,提出了处理线上线下会议安排的优化策略。核心思路是:当线下会议数≤k时,在家办公可最大化空闲时间;否则需枚举上班区间,利用前缀和计算会议数,找到满足条件的方案。代码实现中分别处理了两种场景,并通过双重循环比较不同区间方案,最终输出最优解。时间复杂度主要取决于枚举区间部分。
2025-05-27 21:27:26
243
原创 题解:P11724 [JOIG 2025] ポスター 2 / Poster 2
题解摘要该题解解决了一个方格图颜色修改问题,目标是最大化"鲜艳程度"。解题思路分为两种情况:当颜色种类K≥9时,采用贪心策略将颜色修改为-1以确保与周围方格不同;当K<9时,暴力枚举每个方格可能的颜色修改。算法时间复杂度为O(n²),通过预处理和局部修改优化避免了高复杂度。关键点在于判断每个2x2方格的颜色独特性贡献,并在修改后恢复原颜色以保证正确性。
2025-05-27 21:26:38
812
原创 P6275 [USACO20OPEN] Sprinklers 2: Return of the Alfalfa P题解
本文介绍了USACO20OPEN题目"Sprinklers 2: Return of the Alfalfa"的解题思路和实现方法。首先给出了25分的暴力枚举解法,时间复杂度为O(2^nn^3)。然后提出50分的动态规划解法,通过分割线将田地分为玉米和苜蓿两部分,定义状态dp[i,j,k]表示分割线在第i行第j列时方向为k时的方案数,时间复杂度O(n^3)。最后给出100分优化方案,通过预处理2的幂次和使用前缀和优化,将时间复杂度降为O(n^2)。核心思想是利用分割线划分区域,并使用动态规划计算方案数,同时
2025-05-27 21:25:31
1055
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅