自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 洛谷P4520 [COCI 2017/2018 #4] Izbori题解

你优快云的AI也太敏感了!

2026-01-08 16:41:30 289

原创 洛谷P4417 [COCI 2006/2007 #2] STOL 题解

本文提出了一种O(RS)时间复杂度的算法来解决餐桌最大周长问题。算法首先预处理每个点上方第一个障碍物的位置(u[i][j]),然后通过左右扩展计算以(u[i][j],j)和(i,j)为顶点的最大矩形周长。预处理时从左到右和从右到左两次扫描,记录每个点能扩展的左右边界(l[i][j]和r[i][j])。最终答案由公式(宽度+高度)*2计算得出,并减去米尔科自己的位置。算法正确性基于在最下方行中必存在一个点,其u[i][j]对应最上方行的特性。

2026-01-04 22:45:21 532

原创 [ABC437D] Sum of Differences 题解

题目要求计算数组A和B元素差值的绝对值之和。解法是将A和B排序后,枚举每个A[i],统计B中比A[i]小和大的元素个数及和,利用公式cnt1A[i]-s1 + s2-cnt2A[i]计算贡献。其中cnt1是小于等于A[i]的B元素个数,s1是它们的和;cnt2是大于A[i]的B元素个数,s2是它们的和。注意处理负数取模,时间复杂度O(nlogn+mlogm)。

2025-12-22 20:31:28 851

原创 AT_abc433_e [ABC433E] Max Matrix 2题解

摘要 本文提出了一种解决矩阵最大值问题的奇特方法。给定两个数组X和Y,构建n×m矩阵使得每行最大值为X_i,每列最大值为Y_j。算法核心思想是贪心地为每个数x寻找满足x ≤ min(X_i,Y_j)且min(X_i,Y_j)最小的位置,并采用从大到小的枚举顺序。当x同时出现在X和Y中时,优先处理X_i=Y_j的位置。使用set维护候选位置,时间复杂度为O(N²logN)。最后通过检查每行每列的最大值验证解的正确性。代码实现展示了该方法的有效性。

2025-12-10 17:43:22 953

原创 NOIP 2025 游记

摘要:作者记录了参加NOIP竞赛的经历,吐槽设备问题(鼠标滚轮故障、Linux虚拟机密码问题),比赛中T1花费1.5小时调试,其他题目只能暴力求解,还遇到键盘故障。最后估分141分,不确定能否获得省一等奖。全文充满对赛事组织和题目难度的调侃。

2025-11-29 22:30:42 455

原创 CF2147E Maximum OR Popcount题解

题目链接:CF2147E Maximum OR Popcount 思路摘要: 目标:通过最少操作使数组或结果的二进制中1的个数达到指定值k。 若k≤原或结果的1的个数cnt,无需操作。 若k>cnt,贪心选择最低位的k-cnt个0变为1,保证操作次数最少。 对于第j位的0,最小操作代价为min(2^j - a_i mod 2^{j+1}, 2^j)。 时间复杂度O(n log²V + q logV),其中V是值域。 代码实现: 预处理每个位的可能操作代价并排序。 对于每个查询k,计算最小操作次数,输出

2025-11-28 09:04:39 961

原创 洛谷P5191 [COCI 2009/2010 #6] HOLMES题解

摘要:本文分析了COCI题目HOLMES的解题思路。通过建立事件间的有向边,利用拓扑排序和bitset维护每个事件可达的源点集合。当某个事件的源点集合包含至少一个已知发生事件的源点集合时,该事件必定发生。算法时间复杂度为O(D³/w),代码实现简洁高效,使用队列进行拓扑排序并用bitset快速判断集合包含关系。

2025-11-26 18:18:40 345

原创 CF1215E Marbles题解

摘要 本文介绍了解决CF1215E问题的状压DP方法。关键在于将颜色排列问题转化为二进制状态转移,其中每个状态表示将某些颜色排在最前端的最小操作次数。通过预处理颜色区间内的位置关系,可以高效计算转移代价。算法的时间复杂度为O(2^m m^2),其中m为颜色种类数。代码实现使用位运算进行状态转移,最终输出将全部颜色排好的最小操作数。

2025-11-26 16:38:14 529

原创 洛谷P6441 [COCI 2011/2012 #6] PASTELE题解

本文提出了一种解决三维空间点集选择问题的二分算法。将蜡笔的三种颜色属性映射为三维坐标,通过二分差异值最大值mid,枚举三维区间的右端点(i,j,k),检查区间[i-mid,i]×[j-mid,j]×[k-mid,k]内是否包含至少K个点。采用动态维护的桶结构代替三维前缀和,通过滑动窗口更新有效点集,并使用差分统计满足条件的点数。算法时间复杂度为O(NKlogK),空间复杂度较低。最终输出满足条件的前K个点坐标。该方法在保证正确性的同时,有效降低了空间消耗。

2025-11-26 15:37:16 291

原创 洛谷P7413 [USACO21FEB] Stone Game G 题解

本文研究了USACO21FEB的Stone Game G博弈论问题。通过分析操作次数集合B的奇偶性,得出先手必胜条件:当仅有一个奇数元素且为1时,或两个连续奇数元素时。通过枚举⌊aᵢ/s₁⌋并利用前缀和优化,将时间复杂度从O(M²)降至O(MlogM)。最终代码实现了这一优化方案,计算所有满足必胜条件的初始状态数。该解法巧妙地将博弈论分析与数论技巧结合,有效解决了这一Ad Hoc类问题。

2025-11-25 15:27:05 378

原创 CSP-S 2025(复赛) 游记

CSP-S 2025 (复赛)游记

2025-11-02 09:08:21 828

原创 洛谷P3441 [POI 2006] MET-Subway 题解

文章摘要 题目描述了一棵树,要求选择最多l条路径覆盖尽可能多的节点。解题思路基于以下观察:路径应连接叶子节点,通过逐层删除叶子节点并统计每层贡献来求解。具体步骤为:每轮统计当前层叶子节点数k,取min(k,2l)加入答案;删除这些叶子节点后重复操作直至树空。证明部分说明了这种贪心策略的正确性,即每条路径最多覆盖2个同层叶子节点。代码实现采用BFS,时间复杂度O(n)。该算法高效解决了树结构下的路径覆盖问题。

2025-10-24 16:47:19 1208

原创 洛谷P13744 [NWERC 2024] Flowing Fountain 题解

这篇文章介绍了洛谷P13744题的解法。该问题需要处理香槟在多个盘子中的流动情况。主要思路是: 使用单调栈预处理每个盘子后面第一个比它大的盘子位置 采用并查集优化查询过程,记录每个盘子的香槟量 当盘子灌满时,通过路径压缩直接跳过已满的盘子 支持两种操作:向指定盘子添加香槟和查询盘子的当前香槟量 算法时间复杂度为O(n+q),利用了单调栈和并查集的高效特性,能够快速处理大规模数据。代码实现简洁,通过维护盘子的溢出关系来模拟香槟流动过程。

2025-10-23 15:52:44 928

原创 SCP2025T2:P14254 分割(divide) 题解

本文讨论了如何解决树结构中的子树分割问题。通过分析节点的深度和子树深度范围,论证了当所有被选节点深度相同时,才能满足特定条件。提出了使用组合数学计算合法分割方案的方法:先按深度分组排序,然后用组合数统计满足条件的方案数,并处理边界情况。最终通过预处理阶乘和逆元优化计算,时间复杂度为O(n log n)。代码实现了这一思路,处理输入数据后,通过DFS遍历树结构,计算并统计所有可能的合法分割方案。

2025-10-18 22:30:29 1309

原创 AT_abc219_h [ABC219H] Candles 题解

本文提出了一种解决AT_abc219_h问题的动态规划方法。该问题类似于经典的"关路灯"问题,但增加了蜡烛燃烧时间不能为负的限制。作者采用区间DP策略,设计四维状态dp[i][j][k][0/1]表示处理区间[i,j]的蜡烛,停留于左/右端点,且区间外有k个蜡烛对答案有贡献时的最大价值。通过费用提前计算和时间优化处理,解决了直接记录时间导致状态爆炸的问题。转移方程考虑了从相邻区间扩展和端点间移动两种情况,并确保处理了蜡烛燃尽为负的情况。最终算法时间复杂度为O(n^3),适用于n≤300的

2025-10-17 16:10:45 1162

原创 缩点学习笔记

本文介绍了缩点技巧及其在图论中的应用。缩点是将有向图中的强连通分量视为单个节点,从而将原图转换为有向无环图的方法。文章通过P3387模板题为例,详细说明了使用Tarjan算法求强连通分量、缩点建图,再通过拓扑排序进行动态规划求解的过程。关键点在于:1)强连通分量内部节点相互可达;2)缩点后的图必然无环;3)在DAG上可进行拓扑排序和DP。最后提供了完整的C++代码实现,展示了缩点技巧的实际应用。

2025-10-05 22:58:09 892

原创 洛谷P9560 [SDCPC 2023] Math Problem 题解

摘要 本文介绍了解决SDCPC 2023数学问题的思路和代码实现。题目要求通过两种相反操作找到最优解,关键观察是操作顺序应为先操作二再操作一。通过枚举操作次数,利用鸽巢原理确定操作一的最大次数,算法复杂度为O(Tlogk n logk m)。代码使用__int128防止溢出,并处理k=1的特殊情况,最终输出最小操作次数或-1表示无解。

2025-10-04 22:52:21 1865

原创 AT_abc328_g Cut and Reorder 题解

本文解决了一个关于数组重排的最小代价问题。通过对两种操作的分析,发现最优解只需执行一次分割操作。采用状态压缩动态规划,用二进制数表示元素占用状态,通过刷表法逐步更新最小代价。时间复杂度为O(2^N*N),空间复杂度为O(2^N)。最终代码实现了该算法,通过预处理和状态转移求得最优解。

2025-10-03 22:10:47 1286

原创 好题推荐——另类最小公倍数(gcd)

本文提出了一种求解满足特定条件的无序数对$(a,b)$的方法。首先将问题转化为枚举最大公约数$d$,寻找互质的$a'$和$b'$使得$a'b' \leq \lfloor l/d \rfloor$。通过预处理前缀和数组,算法时间复杂度优化为$O(n(\log n)^2)$。具体实现时,使用双重循环枚举可能的数对组合,并利用GCD检查互质性,最后累加所有可能情况的结果。该方法有效降低了计算复杂度,适用于较大规模的数据范围。

2025-10-02 22:59:54 600

原创 AT_abc228_h [ABC228H] Histogram题解

本文提出了一种解决Histogram问题的动态规划方法。首先将数组排序,发现最优解是将数组分成若干段,每段提升到该段最大值。通过定义dp[i]表示前i个数的最小代价,推导出转移方程,并利用前缀和拆解计算式。最终通过斜率优化将时间复杂度优化至O(n)。该方法巧妙地结合了排序、动态规划和数学优化技巧,有效解决了原问题。

2025-10-01 22:21:32 825

原创 二维凸包——Andrew 算法学习笔记

本文介绍了二维凸包的概念及其应用,重点讲解了Andrew算法求解凸包的原理和实现方法。凸包是包含所有给定点的最小凸多边形,Andrew算法通过排序后使用单调栈求取上、下凸壳,最终得到完整凸包。算法时间复杂度为O(nlogn),主要耗时在排序步骤。文中提供了完整的C++代码实现,并通过避免斜率计算的精度问题来提高准确性。该方法不仅适用于计算几何问题,也与斜率优化等算法有相似之处。

2025-09-30 20:54:21 1536

原创 P14079 [GESP202509 八级] 最短距离 题解

摘要 题目给定一个巨大无向完全图,边权取决于节点编号是否互质(互质为p,否则为q)。对于每个询问,求两点间最短路径。核心解法是:互质时答案为min(p,2q),不互质时为min(q,2p)。特殊情况单独处理,如相同节点、与1相连等情况。通过计算gcd判断互质性,时间复杂度为

2025-09-30 17:54:06 889

原创 GESP8级—AT_icpc2013_e 最小生成树与洛谷P14080题解

该题是关于最小生成树的动态维护问题。给定一个带权无向图,要求计算删除每条边后新图的最小生成树权值。关键点在于: 如果删除的边不在原最小生成树上,答案不变。 如果删除的边在最小生成树上,需要找到连接被分割两部分的权值最小的替代边。 解题方法: 先构建原图的最小生成树 对非树边,用其权值更新其连接路径上所有树边的可能替代值 对于每条边查询结果:非树边答案不变,树边答案为原权值减去该边权值加上最佳替代边权值 时间复杂度可以通过树链剖分优化到O(n log n)。

2025-09-27 21:12:56 583

原创 关于树形背包DP的时间复杂度证明

摘要 本文介绍了洛谷P2014选课问题的树形DP解法。通过构建依赖关系树,使用动态规划计算每个子树选课的最优解,时间复杂度经优化可达O(n^2)。证明部分展示了通过分析子树大小相乘的关系,以及两点在LCA处贡献复杂度,推导出算法复杂度为平方级别。该解法利用DFS遍历树结构,运用分组背包思想,最终输出根节点在限定课程数下的最大收益。

2025-09-25 23:07:12 1453 1

原创 思维好题推荐——最近公共祖先(LCA)

本文提出了一种求解树结构中LCA(最近公共祖先)问题的优化算法。通过预处理DFS序和倍增数组,利用线段树维护区间修改,实现O(n log n)的时间复杂度。算法核心在于动态维护d数组,通过二分查找确定变化点,并使用线段树高效更新。需要注意答案可能超出int范围,推荐使用快读优化输入。该方案适用于大规模树结构处理,但常数较大。

2025-09-25 21:55:08 798

原创 CSP-S2025初赛游记

这篇考场记录描述了作者参加一场编程相关考试的经历。从入场安检、考场规则宣读,到具体试题内容都有详细记载。作者提到试卷出题方向变化、遇到的意外题型(如缺少预期的Linux题目),以及答题过程中的各种细节观察和临场反应。文中特别提到两道与预期不符的题目("You have no egg"和方程解数量题),以及考场最后时刻的代码补充要求。文章以"好好打,好好发挥就不会有问题"作结,整体记录了一场充满意外但平稳应对的考试过程。

2025-09-24 16:49:21 647

原创 【最新消息】山东省部分地市2025CSPJ/S/X分数线出炉

山东省部分地区信息学竞赛(CSP)初步晋级分数线公布,包括烟台、青岛、临沂、潍坊和济宁等城市。烟台市小学组65分、入门组69分、提高组56分入围;临沂X组53分、J组62.5分、S组51分;潍坊X组51分、J组56分、S组57分。优先晋级线为J组75分、S组62.5分。各分数线均为初步划定,最终结果以官方通知为准。

2025-09-22 21:16:57 3232

原创 CSP-S2025 第一轮试题(附答案)

这是一份考试答案汇总,包含8行选择题答案(CABDD等)和判断题标记(TTFADC等)。文末附有评分标准:1-15题每题2分,16题1分,17-43题判断题1.5分/题、选择题3分/题。答案提供者声明该答案为非官方版本,建议以官方答案为准。

2025-09-20 17:47:22 4819 1

原创 CSP-J2025 第一轮试题

本文提供了一份编程竞赛试题的部分参考答案,包含9道选择题的答案示例(ABBBB、CCDBC、BBACA)。特别说明其中第2题为函数式交互题,改编自ARC070F竞赛题,难度较高,要求选手独立完成。所有答案仅供参考,最终以官方公布为准。

2025-09-20 11:51:19 4840 3

原创 好题推荐-剑指S10

题目要求找出最小的非负整数r,使得满足特定条件。采用二分法,预处理每个点到其他点的欧几里得距离并排序。对于每个查询,通过二分查找确定满足条件的r。时间复杂度为O(km log d log n + nm log n)。样例输入为点坐标和伤害值,输出对应最小r或无解标识。

2025-09-19 22:11:06 1059

原创 【入门】洛谷P14027 【MX-X20-T1】「FAOI-R7」加训加训(梦熊周赛)题解

每天通过加k或乘k最大化能力值,直到达到或超过目标值b。采用贪心策略,每步选择能使能力值增长最多的操作(加k或乘k中的最大值)。通过循环计算达到目标所需的最少天数,并输出结果。

2025-09-14 09:53:55 319

原创 洛谷P9468 [EGOI 2023] Candy / 糖果题解

本文介绍了解决糖果问题的动态规划方法。使用二维数组dp[i][j]表示操作j次后前i项和的最大值。通过枚举移动位置和操作次数进行状态转移,转移方程为dp[p][k]=max(dp[p][k], dp[p-1][k-(i-p)]+a[i])。最终遍历所有可能的操作次数,找到满足条件的最小操作次数或输出"NO"。该算法时间复杂度为O(N³F),适用于小规模数据。代码实现简洁高效。

2025-09-13 11:24:38 711

原创 CF702E Analysis of Pathes in Functional Graph 题解

摘要 本文介绍了解决CF702E问题的倍增算法。题目要求在功能图中分析路径,对每个节点输出跳k步后的边权和与最小值。通过预处理f[i][j]、sum[i][j]和mn[i][j]三个数组,分别表示从i节点跳2^j步到达的节点、边权和及最小值。采用倍增思想将k分解为二进制位处理,时间复杂度为O(nlogk)。代码实现了预处理和查询过程,最终对每个节点输出所需结果。

2025-09-11 22:15:32 859

原创 字符串好题-persecution

摘要:该题解解决了一个字符串处理问题,输入n个字符串后,首先将它们排序,然后计算相邻字符串的最长公共前缀(LCP)。最终输出两个结果:最小LCP值乘以(n-1),以及所有相邻字符串LCP的总和。算法时间复杂度主要取决于排序步骤,使用快速排序为O(nlogn)。核心思路是通过排序后相邻比较来高效计算前缀匹配情况。

2025-09-08 10:00:00 687

原创 [SWERC 2020] Safe Distance题解

题目要求在给定矩形区域内,从(0,0)到(X,Y)规划一条路线,使其与N个已知点的最小距离最大化。采用并查集方法,通过计算点与点、点与边界的最小距离,按距离排序后逐步合并连通块,当左右边界或上下边界连通时,此时的临界距离即为所求答案。时间复杂度主要为排序的O(N^2 logN)。最终输出该临界距离即可满足精度要求。

2025-09-07 14:02:20 1066

原创 构造好题推荐——逃亡 (mex)

摘要:该题解分析了如何通过数字排列最小化或最大化特定数字在子序列中的出现次数。通过数学推导得出,当数字i与(n-i+1)差值最小时,包含该数字的子序列数量最多。据此构造了两种排列方案:一种使0、1等数字出现次数最少(1,2,4...5,3,0),另一种使其出现次数最多(...4,2,0,1,3...),并给出了对应的计算结果。

2025-09-06 10:00:00 529

原创 图论好题推荐-不固定图-铁道

本文介绍了一个基于可变铁道的图论最短路问题。给定n个节点和m条边(含可变铁道),要求计算每个节点到其他节点的最短路径。解题思路分为两种情况:1)不经过可变铁道,直接使用原图的最短路;2)经过可变铁道,寻找距离起点和终点最近的固定端点组合。算法通过两次Dijkstra分别计算从起点和终点出发的最短路径,并维护最小值。最终结果为两种情况的较小值,若结果超过边数则输出-1。代码实现包括邻接表存储、优先队列优化的Dijkstra算法以及结果的最小值比较。

2025-09-05 10:00:00 469

原创 思维好题推荐-接雨水

题目要求计算操作后数组的特定函数值。通过线段树维护f、g数组及其最小值,利用二分查找确定操作影响区间,并动态更新线段树。每次操作后,输出当前结果与数组和的差值。时间复杂度为O(q log²n),适用于大规模数据。代码实现了区间赋值、查询和二分查找等操作,确保高效处理多次查询。

2025-09-04 10:00:00 1498

原创 【好题推荐】运算符的构造运用

题目考察位运算的性质与组合。通过分析发现,给定输入数据后,可能的正确运算符组合有限,包括单运算符或特定组合。解题时需验证所有可能的运算符组合,找到符合要求的解,若无解则输出WrongProblem。

2025-08-29 16:17:30 270

原创 【c++题解】经典题目:带修改的 LIS 问题——CF650D Zip-line

本文介绍了解决带修改的LIS(最长递增子序列)问题的方法。给定一个长度为n的序列和m个独立询问,每个询问修改某个位置的值后求新序列的LIS。解法分三步:首先预处理原序列的LIS长度和每个位置在LIS中的关键性;然后处理每个查询,计算修改后该位置前后两部分的最长递增序列;最后综合原LIS和修改后的结果得出答案。算法使用离散化和树状数组优化,总时间复杂度为O((n+m)log(n+m))。代码实现了这一思路,通过两次扫描序列并结合查询处理,高效解决了带修改的LIS问题。

2025-08-29 11:39:43 806

JiYuTrainer(最新版!)

别人怎么是付费的?这是个开源软件吧!(by 快乐的梦鱼) 你有没有被极域电子教室控制的经历,用这个软件吧! JiYuTrainer-master,可以直接杀死极域电子教室、解除屏幕广播与黑屏、阻止极域控制电脑等。 操作说明在软件里,非常简单。

2025-08-26

景好鼠标录制器2.1版

你有没有想过批量重复你的某个操作?很好用的鼠标录制器-景好鼠标录制器(免费工具)可以解决此问题。 使用教程: 进入工具,使用录制启停进行鼠标录制以及键盘录制,注意这里是录制键盘的按键与鼠标的坐标。 录制结束后,可以发现左边生成的录制的文件(sbf 格式),默认存在程序所在文件夹。 可以选择某个文件进行播放,也可以多选文件进行顺次播放。右侧可以选择播放倍速与播放次数。特别的,如果播放次数设置为 0,程序将无限循环播放,按 Ctrl+Alt 退出。 这里的相对位置指鼠标轨迹按照程序窗口的相对位置播放,即窗口移动鼠标也会相应移动。 左上角的文件中可以设置快捷键。

2025-08-24

空空如也

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

TA关注的人

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