刷题之路
文章平均质量分 87
up主个人的刷题空间,给大家分享好题,快来看ヾ(•ω•`)o
YLCHUP
博观而约取,厚积而薄发。C++初学蒟蒻一个,和大家一起学习进步,偶尔分享小技巧,加油!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【二分图+栈排序】题解:P1155 [NOIP2008 提高组] 双栈排序_二分图染色_贪心_模拟_C++算法竞赛
本文研究了双栈排序问题,通过二分图染色和贪心策略给出了解决方案。首先分析单栈排序的限制条件,引入后缀最小值优化冲突检测。然后将问题转化为二分图染色问题,确保冲突元素进入不同栈。在模拟过程中,采用贪心策略保证字典序最小的操作序列。算法主要包括预处理、二分图判定、栈模拟三个阶段,时间复杂度为O(n²)。对于无法排序的情况输出0,否则输出字典序最小的操作序列。原创 2025-08-27 12:07:49 · 1072 阅读 · 0 评论 -
【数学分块】题解:P13831 【MX-X18-T3】「FAOI-R6」比亚多西_二分查找_整除分块_数学推导_算法竞赛C++
本文探讨了二分查找次数函数f(n)的递推关系及其区间和计算。作者通过构建二叉搜索树模型,证明f(n)=f(n-1)+⌊log₂n⌋+1。基于该性质,将区间和转化为前缀和差s(R)-s(L-1),并利用对数分块和等差数列求和优化计算。给出C++实现,使用int128处理大数取模,时间复杂度为O(log R)。代码通过预处理2的幂次和模运算优化,最终高效求解给定区间[L,R]内f(i)的和。原创 2025-08-27 12:04:56 · 1047 阅读 · 0 评论 -
【联通分量】题解:P13823 「Diligent-OI R2 C」所谓伊人_连通分量_最短路_01bfs_图论_C++算法竞赛
本文提出了一种基于分层图的最短路算法来解决点权交换问题。通过将原图与反图分层构建,并利用01bfs优化,实现了O(m)时间复杂度的解决方案。关键点在于:1)将每个弱连通分量的最大点权点作为起点;2)构建两层图结构处理正向和反向路径;3)使用双端队列优化最短路计算。该方法有效解决了需要多次中转的最小操作次数问题,并通过特判处理了直接可到达的情况。代码实现展示了完整的输入处理、连通分量分析、最短路计算和结果输出流程。原创 2025-08-25 12:59:50 · 874 阅读 · 0 评论 -
题解:P13822 「Diligent-OI R2 B」白露为霜_奇偶性_数学归纳_算法竞赛C++
本文证明了当且仅当两个数组的奇偶性相同时,可以通过特定操作相互转换。核心思路是将问题转化为奇偶性判断,通过数学归纳法构造操作方案。文章还给出了C++实现,并提醒注意边界条件(n=1)和优化输入效率。证明包含必要性和充分性两部分,确保结论的正确性。原创 2025-08-24 11:36:50 · 380 阅读 · 0 评论 -
题解:P13754 【MX-X17-T3】Distraction_逆序对_前缀和_Ad-hoc_算法竞赛C++
摘要 本文分析了一道关于01序列翻转的算法题。通过将原排列转换为01序列,问题转化为寻找一个偶数长度的区间进行翻转,使得序列中1的个数最大化。关键步骤包括: 利用排列性质将初始贡献计算简化为(i + p_i) mod 2 将问题转化为最大子段和问题,要求区间长度为偶数 使用前缀和及奇偶位置最小值优化计算 实现O(n)时间复杂度的解法 最终解法通过预处理和线性扫描高效求解,适用于大规模数据。原创 2025-08-23 21:05:34 · 358 阅读 · 0 评论 -
【生成树+环】题解:P3907 环的异或_图论_环_异或_搜索_算法竞赛_C++
本文探讨了图的环检测问题,提出了一种基于生成树和异或前缀和的高效算法。核心思想是通过构建生成树后检查非树边,利用异或性质快速计算路径权值,实现O(n+m)时间复杂度。文章给出了两种实现方案:一种是优化的生成树方法,无需计算LCA;另一种是暴力DFS遍历。两种方法都能有效判断图中所有环的异或和是否为零,适用于解决相关问题。附带C++代码实现,并提及了带权并查集的替代方案。原创 2025-08-22 19:09:21 · 1101 阅读 · 0 评论 -
【跳表+单调栈】题解:P12646 [KOI 2024 Round 1] 升序 & P12642 [KOI 2024 Round 1] 加倍_数据结构_前缀和_算法竞赛C++
这篇文章介绍了一个关于数组操作次数计算问题的优化解法。文章分为两部分:第一部分分析了一个弱化版问题,通过预处理c数组(表示每个元素需要加倍的最小次数)并处理前缀和来计算答案;第二部分提出了加强版的解法,通过预处理跳转指针和优化求和公式,将时间复杂度从O(nq)优化到O(n + q log w)。核心思路是利用数学变换和跳表结构快速定位非零区间,从而高效处理大规模查询。文章附有详细的代码实现和数学推导过程。原创 2025-08-22 00:05:25 · 1139 阅读 · 0 评论 -
【子集dp】题解:AT_dp_u Grouping_位运算枚举子集_状压dp_C++_算法竞赛
本文介绍了状压DP解决兔子分组问题的思路。通过二进制状态表示兔子选择情况,状态转移考虑两种方式:直接计算当前集合不分组时的收益,或枚举所有子集进行分组转移。关键点在于使用位运算技巧高效枚举子集(j=(j-1)&i),并分析得出时间复杂度为O(3^n)。代码实现了该算法,预处理各状态收益后,通过比较分组与不分组情况的最大值得到最终解。该方法本质上是一种子集DP,适用于处理集合划分的最优化问题。原创 2025-08-18 15:59:50 · 515 阅读 · 0 评论 -
题解:P11140 [APC001] E - Linear Map_双指针_dp优化_C++_算法竞赛
本文介绍了一个解决字符串分段计数问题的动态规划方法。通过设计状态dp[i]表示前i个位置的分段方案数,采用类似最长上升子序列的转移方式,并优化判定函数的时间复杂度。关键优化包括:利用桶数组判重、发现单调性后使用双指针、以及通过观察得出"有趣"字符串最大长度仅为9的特性,将时间复杂度从O(n^4)优化至O(n)。最终方案采用卡常技巧实现高效计算,适用于处理大规模数据。该问题展示了如何通过逐步优化将复杂问题简化的典型思路。原创 2025-08-15 15:38:28 · 715 阅读 · 0 评论 -
题解:P12505 「ROI 2025 Day2」充实的假期
摘要 本文介绍了解决洛谷P12505"充实休假日"问题的多种方法。问题要求通过最多调休k天,使得连续休息天数最大化。针对不同数据规模,提出了多种解法:对于全0情况直接判断;对于k=0时统计原始连续休息日;对于小规模数据采用爆搜;对于特定模式字符串采用数学计算;对于k=1情况预处理左右连续休息日长度;最后提出正解——贪心策略优先处理"101"模式,其次"01/10"模式。各种解法均给出了详细代码实现和思路分析,展示了从部分分到正解的完整解题过程。原创 2025-08-12 19:54:19 · 710 阅读 · 0 评论 -
题解:P4447 [AHOI2018初中组] 分组
本文探讨了如何将队员按实力值分组,使得每个组的实力值连续且不重复,并最大化人数最少组的人数。第一种解法通过排序后使用multiset动态维护各组信息,贪心地将每个数分配到合适的组。第二种解法采用数形结合思路,利用map统计各实力值出现次数,通过不断延伸连续段并递减计数来寻找最优解。两种方法的时间复杂度均为O(n log n),适用于n≤1e5的数据规模。最终输出所有组中最小组人数的最大值。原创 2025-08-02 23:19:16 · 661 阅读 · 0 评论 -
题解:P9468 [EGOI 2023] Candy / 糖果
题目要求通过交换相邻元素使得数组前F个元素的和至少为T,求最少交换次数。关键思路是选择F个元素使其总和≥T且原始位置和最小,从而最小化交换次数。通过动态规划维护在不同位置和下的最大数值总和,最终根据满足条件的最小位置和计算所需交换次数。时间复杂度为O(NF5050),适用于N≤100的数据范围。原创 2025-07-23 23:07:40 · 1176 阅读 · 0 评论 -
1.4 洛谷入门一题单全解
本文介绍了编程入门阶段的表达式概念和基础输入输出练习题,包括洛谷平台的多个入门题目。文章详细讲解了如何用C++、C和Python实现字符图形输出、A+B问题、字符转换、数字反转等基础编程任务,并提供了多种解题思路和代码示例。特别强调了数据类型转换、数学运算和格式化输出等关键知识点,帮助初学者掌握基础编程技能。所有题目都配有完整的代码实现和解题分析,适合编程新手作为入门练习。原创 2025-07-09 22:22:13 · 965 阅读 · 0 评论 -
题解:P13017 [GESP202506 七级] 线图
摘要:线图L(G)的顶点对应原图G的边,当两条边在原图中共享顶点时,其对应的线图顶点相连。线图的边数等于原图中所有顶点度数组合数之和,计算公式为∑(d(v)×(d(v)-1)/2)。文中给出了对应的C++代码实现,通过统计顶点度数并计算组合数之和来求解线图的边数。原创 2025-07-09 22:19:32 · 422 阅读 · 0 评论 -
题解:P11501 [ROIR 2019] 探险队(Day 2)
本文提出了一种基于拓扑排序和动态规划的算法来解决基环树上的最大点独立集问题。算法首先通过拓扑排序处理非环部分,计算每个节点的子树最大独立集;然后针对环上的节点,采用两种限制条件(强制不选首节点或尾节点)分别进行DP,最终整合结果。该方法有效解决了基环树结构中相邻节点不能同时选择的约束问题,时间复杂度为线性。代码实现中详细处理了拓扑排序、子树DP和环上DP三个关键环节,确保算法的正确性和高效性。原创 2025-06-21 21:54:21 · 474 阅读 · 0 评论 -
P5684 [CSP-J2019 江西] 非回文串 题解
题目要求计算给定字符串的非回文排列数。解题思路采用正难则反的方法,用全排列数减去回文排列数。首先统计各字符出现次数,若超过一个字符出现奇数次则直接输出全排列n!;否则计算回文排列数:对于全偶数字符,按对称性计算组合数;对于存在奇数字符,先固定中间位置再对称处理。使用预处理阶乘和逆元优化计算。最终答案通过(n! - 回文数 + mod) % mod得到,避免负数结果。时间复杂度主要取决于预处理阶乘的O(n)和快速幂的O(log n)。原创 2025-06-02 20:30:36 · 340 阅读 · 0 评论 -
题解:P8819 [CSP-S 2022] 星战(随机哈希)
题目要求实现加边和删边操作,并实时判定是否所有点的出度都为1。通过分析,发现这等价于基环树的性质,即所有点出度为1。为了高效维护和判断,采用哈希方法,为每个点分配随机哈希值,动态维护入度和哈希和。通过四种操作(删边、删所有入边、加边、加所有入边)更新哈希和,并判断当前哈希和是否等于初始哈希和,从而判定是否满足条件。最终,通过维护初始哈希和和当前哈希和,实现了高效的动态判定。原创 2025-05-10 17:29:09 · 729 阅读 · 0 评论 -
%3 题解(组合计数+隔板法)
组合计数好题!综合运用隔板法和差分数组求解问题,推导过程详细,及其考验思维!快来看ヾ(•ω•`)o原创 2025-02-12 17:01:39 · 907 阅读 · 0 评论 -
2025.2.8 寒假综合训练赛2题解
模拟赛题解。里面有从题目观察到思路推导再到代码实现的详细过程,题目包含博弈论、思维枚举、dp,讲解深入浅出,保证看完会有收获!快来看ヾ(•ω•`)o原创 2025-02-10 18:11:03 · 1053 阅读 · 0 评论 -
求积水问题的三种解法
C++典型搜索例题“积水问题”的详细解法,从入门到优化,还附赠全新解法:并查集!讲解细致,快来看ヾ(•ω•`)o原创 2025-02-06 11:06:45 · 1041 阅读 · 0 评论 -
差值 dp 入门
差值 dp 的入门讲解,深入浅出,例题引导,7000 字倾情奉献,快来看ヾ(•ω•`)o原创 2025-02-03 19:39:13 · 871 阅读 · 0 评论 -
题解:十七边形_三角函数_C++算法竞赛
正十七边形这道题的详细讲解,附带三角函数推导过程及证明,保证一看就会!快来看ヾ(•ω•`)o原创 2024-07-30 20:17:33 · 498 阅读 · 0 评论 -
【C++】倍增LCA详解 + P3379 最近公共祖先题解
倍增树上最近公共祖先(LCA)的超详细解释,细致入微,一看就懂,或多或少会为大家带来一些新的思考。快来看ヾ(•ω•`)o原创 2024-07-27 22:46:44 · 1278 阅读 · 0 评论 -
【普及动规】dp例题精讲+强化练习
dp例题精讲+强化练习,每道题都有详细思路解释和题解,快来看ヾ(•ω•`)o原创 2024-07-21 23:23:49 · 1401 阅读 · 0 评论 -
【普及组】广度优先搜索BFS——到达型搜索问题_C++算法竞赛
广搜到达类问题的超详细总结,有例题,保准一看就懂。适合初学者及中等水平阅读,快来看ヾ(•ω•`)o原创 2024-07-21 18:30:44 · 1246 阅读 · 0 评论 -
C++分组背包问题_动态规划dp_背包_算法竞赛
分组背包的详细讲解,附带两道经典例题,讲解得细致、易懂。快来看ヾ(•ω•`)o原创 2024-07-20 23:17:42 · 1547 阅读 · 0 评论 -
题解:[ABC358E] Alphabet Tiles
详细的题解,深入浅出,思路分析有理有据,保准一看就懂!快来看ヾ(•ω•`)o原创 2024-07-19 23:18:42 · 893 阅读 · 0 评论 -
题解:[ABC350D] New Friends
ABC350D的题解,一道有思维难度的图论,考验了大家对图论基础知识:完全图的理解。自认为自己讲解得还是很细致的。快来看ヾ(•ω•`)o原创 2024-07-18 17:48:40 · 1190 阅读 · 0 评论 -
题解:P1121 环状最大两段子段和_动态规划dp_算法竞赛_C++函数模板
P1121的题解,详细讲解动规思路+解题过程,思路清晰、连贯、易懂。更有彩蛋“函数模板的函数传参”放送!快来看ヾ(•ω•`)o原创 2024-07-18 17:27:01 · 1106 阅读 · 0 评论 -
题解:小S与机房里的电脑 Computer_C++算法竞赛_贪心_二分答案_模拟_数据结构
一道有难度的贪心+二分答案+模拟的题目,文章讲解得比较详细,给出程序实现的过程,让大家更直观地理解解题方法。而不是讲枯燥的思路。快来看ヾ(•ω•`)o原创 2024-07-17 17:09:53 · 1103 阅读 · 0 评论 -
题解:CF670E Correct Bracket Sequence Editor_C++算法竞赛_括号匹配+模拟_指针双向链表
本题使用了模拟+括号匹配+双向链表(指针)等多种技巧,本文也进行了较为详细的讲解。希望大家能有所收获!快来看ヾ(•ω•`)o原创 2024-07-17 14:45:32 · 987 阅读 · 0 评论 -
【C++】题解:P1259 黑白棋子的移动_递归+模拟_算法竞赛_洛谷
P1259是一道模拟+递归的有难度的题,本题解讲解地很生动易懂,在快乐中学算法!快来看ヾ(•ω•`)o原创 2024-07-16 15:51:15 · 1383 阅读 · 0 评论 -
【C++】P10287 [GESP样题 七级] 最长不下降子序列 题解_动态规划dp_图论_拓扑排序_洛谷_算法竞赛
P10287题解,图论+dp,一道有难度的思维题,讲解得很详细,一看就能懂。快来看ヾ(•ω•`)o原创 2024-07-15 17:09:23 · 1778 阅读 · 0 评论 -
【C++】B3716分解质因子3 题解_素数筛法_欧拉筛+埃氏筛_算法竞赛
洛谷B3716题解,一道巧妙的质数筛法变形题,讲解得很详细,适合中等水平学习。快来看ヾ(•ω•`)o原创 2024-07-14 23:26:21 · 1020 阅读 · 0 评论 -
【反悔贪心】P2949WorkSchedulingG+P4053[JSOI2007]建筑抢修题解
“反悔贪心”是重要的技巧,本文以例题为引导,带大家深入算法本质,轻松学习。快来看ヾ(•ω•`)o原创 2024-07-13 19:28:06 · 550 阅读 · 0 评论 -
【2024最新】C++扫描线算法介绍+实战例题
扫描线算法的一个介绍,里面有资料很少的一维扫描线,也有丰富的个人试错经验,干货满满。快来看ヾ(•ω•`)o原创 2024-07-13 17:35:23 · 1531 阅读 · 0 评论 -
C++对顶堆(求第k大、k小数)+P1801题解
C++对顶堆(求第k大、k小数)的详细讲解,整理了一些题解里的言论,自己作收藏用。快来看ヾ(•ω•`)o原创 2024-07-11 12:29:03 · 408 阅读 · 0 评论 -
题解:CF859C Pie Rules
CF859C Pie Rules的题解,很有意思的一道博弈论,详细地讲解了dp做法及其思考过程。保证一看就懂,快来看ヾ(•ω•`)o原创 2024-05-19 19:45:24 · 1187 阅读 · 0 评论 -
题解:P10373 [AHOI2024 初中组] 立方根
P10373 [AHOI2024 初中组] 立方根的题解,详细地讲了如何通过找规律入手,到完成数学分析,最后实现代码。保证一看就懂。快来看ヾ(•ω•`)o原创 2024-05-19 19:40:26 · 935 阅读 · 0 评论 -
题解:P8778 [蓝桥杯 2022 省 A] 数的拆分
P8778 [蓝桥杯 2022 省 A] 数的拆分的题解,超级详细,保证一看就懂,思路齐全。快来看ヾ(•ω•`)o原创 2024-05-19 19:33:09 · 770 阅读 · 0 评论
分享