<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Sunnyside_______的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Sunnyside_______</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Sunnyside_______]]></copyright><item><title><![CDATA[二分查找与二分答案：在有序世界里“耍流氓”的高效算法]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/161145379</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/161145379</guid><author>Sunnyside_______</author><pubDate>Sat, 16 May 2026 17:39:54 +0800</pubDate><description><![CDATA[本文生动讲解了二分查找与二分答案算法的原理与应用。二分查找通过在有序数组中不断折半缩小范围，实现O(logn)的高效查找；二分答案则是在解空间内利用单调性进行二分逼近，解决"最大值最小化"等问题。文章详细剖析了两种算法的实现细节（边界处理、溢出预防）、经典案例（木材切割、数值范围查询）及优化技巧，并对比了二者的异同。最后指出这些算法在数据库索引、算法竞赛等场景的重要价值，强调掌握二分思想对提升编程效率的关键作用。全文以幽默比喻化解算法复杂度，帮助读者轻松理解这一高效算法范式。]]></description><category></category></item><item><title><![CDATA[竞赛中的C++阅读程序类题目：全面解析与实战技巧]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/150103103</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/150103103</guid><author>Sunnyside_______</author><pubDate>Sat, 09 Aug 2025 09:47:39 +0800</pubDate><description><![CDATA[本文系统解析了竞赛中C++阅读程序类题目的特点和解题技巧。文章首先强调这类题目在信息学竞赛中的重要性，指出其占分比例高且能检验代码理解能力。然后从基础知识、数据结构与算法两个维度展开，详细讲解C++语法要点、指针、递归、STL等核心概念，以及数组、链表、树等常见数据结构。针对题型特点，文章总结出判断题、选择题和完善程序题三大类，并分析其知识分布和难度梯度。最后提出有效的解题策略，包括快速理解代码结构、变量跟踪和测试用例分析等实用技巧，帮助竞赛选手提升解题能力。]]></description><category></category></item><item><title><![CDATA[线段树：C++算法中的“区间管理大师”，教你如何高效“分家”！（附超详细图解+实战代码）]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149862869</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149862869</guid><author>Sunnyside_______</author><pubDate>Sat, 02 Aug 2025 18:52:34 +0800</pubDate><description><![CDATA[本文用生动幽默的语言介绍了C++算法中的线段树(Segment Tree)数据结构。文章将线段树比喻为&quot;区间管理大师&quot;，通过&quot;分家产&quot;的接地气比喻，解释了线段树如何高效处理区间查询问题。主要内容包括：线段树的基本概念及其相比普通数组在查询效率上的优势(O(logn) vs O(n))；线段树的结构特点，用完全二叉树实现，需要4倍空间；支持的各种区间操作（求和、最值等）；手把手演示建树和查询操作的实现过程，并附有带注释的C++代码示例。文章通过快递分拣、切蛋糕等生活化类]]></description><category></category></item><item><title><![CDATA[生成树算法：C++里的“修路大王”，让你的代码不绕路！]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149862515</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149862515</guid><author>Sunnyside_______</author><pubDate>Sat, 02 Aug 2025 18:04:24 +0800</pubDate><description><![CDATA[摘要：生成树算法——C++中的“修路大王” 本文用幽默生动的语言讲解了最小生成树(MST)算法在C++中的应用。通过生活化类比(如WiFi断网、快递绕路等)，阐释了生成树的核心概念：在连通图中选择总权重最小的n-1条边连接所有节点且不形成环路。重点对比了Prim算法(贪心选择最近节点)和Kruskal算法(按权重排序选边)的实现思路，并提供了带有详细注释的C++代码示例(如优先队列的使用)。文章还澄清了常见误区(如MST与最短路径的区别)，指出其在网络设计、电路布线等场景的实际价值，让读者在轻松氛围中掌握这]]></description><category></category></item><item><title><![CDATA[从零搞懂MySQL索引：B+树原来是这么回事！连隔壁王大爷都能看懂的实战指南]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149838953</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149838953</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 17:43:47 +0800</pubDate><description><![CDATA[矮胖身材+叶子链表+有序存储索引优化本质是减少硬盘IO，一切围绕这个目标实战中要先诊断再优化，别上来就改索引最后送大家一句我在MySQL源码里看到的注释：（索引就像路标——太少会迷路，太多反而更困惑）赶紧去检查你的SQL，说不定就藏着个能优化100倍的查询！写完记得加标签 #技术栈深潜计划，咱们评论区见真章！附：自查小测验为什么B+树比B树更适合数据库？WHERE name LIKE '%张%'为什么走不了索引？覆盖索引为什么能避免回表？（答案在文中找，评论区晒答案有惊喜🎁）]]></description><category></category></item><item><title><![CDATA[Floyd算法：图中找路的“老司机”，C++实现不迷路！（附超详细解析+骚操作指南）]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149837801</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149837801</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 17:15:28 +0800</pubDate><description><![CDATA[三重循环盘所有”：k在外层，i、j遍历，用k优化i→j路径。“INF安全是王道”：别用INT_MAX，0x3f3f3f3f保平安。“负权环要检查”：算完看dist[i][i] < 0？有就GG。]]></description><category></category></item><item><title><![CDATA[动态规划：C++算法界的“记忆超人”，让你的代码从“递归到死”到“秒出答案”！]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149835998</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149835998</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 16:20:37 +0800</pubDate><description><![CDATA[状态（State）就是描述问题当前情况的变量。“状态越少越好，能少写一个变量就少写一个！案例：爬楼梯问题（经典入门题）题目：每次能爬1阶或2阶，爬n阶楼梯有几种方法？错误状态dp[i][j]表示爬到第i阶、上一步走了j阶的方法数 → 变量太多，自己都绕晕！正确状态dp[i]表示爬到第i阶的方法数 →简单粗暴！为什么？因为到第i阶只取决于前两阶（i-1和i-2），和之前怎么爬无关（马尔可夫性）。案例：最长递增子序列（LIS）dp[i]= 以i结尾的LIS长度 → 正确dp[i]]]></description><category></category></item><item><title><![CDATA[C++单调队列：让算法效率“单调”飙升的秘密武器]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149835179</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149835179</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 15:48:41 +0800</pubDate><description><![CDATA[单调队列（Monotonic Queue）：一种用双端队列（std::deque）实现的特殊数据结构，核心特点是队列中的元素始终保持单调递增或单调递减顺序。单调递减队列单调递增队列关键特性✅只维护“有用”的元素：比如求最大值时，比当前元素小的“弱鸡”会被无情踢出队伍（pop_back()✅O(1)时间获取极值：队头永远是当前窗口的最大/最小值，不用遍历！✅O(n)时间处理整个数组：每个元素最多入队出队1次，摊还时间超高效。“只留精英，淘汰炮灰；队头即王，O(1)称霸！]]></description><category></category></item><item><title><![CDATA[优先队列：C++里的“急诊室队长”，搞定任务优先级就靠它！（附Luogu实战秘籍）]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149834802</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149834802</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 15:21:37 +0800</pubDate><description><![CDATA[C++优先队列实战指南：从急诊室比喻到刷题实战 摘要（150字）： 本文深入浅出讲解C++优先队列(priority_queue)的核心用法与底层原理。通过急诊室分诊、快递分拣等生活化比喻，解析优先队列&quot;智能排队&quot;的特性：默认最大堆实现、自定义比较函数、结构体重载运算符等关键技巧。文章结合Luogu刷题实例，演示优先队列在解决TopK问题、任务调度等场景的实际应用，并剖析其O(log n)时间复杂度的堆实现原理（上浮/下沉操作）。最后提供典型题目代码模板，帮助读者快速掌握这一重要数据结构]]></description><category></category></item><item><title><![CDATA[深入浅出C++中的BFS与DFS：从迷宫探险到代码实战，万字长文带你彻底搞懂！]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149834107</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149834107</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 14:55:53 +0800</pubDate><description><![CDATA[本文深入浅出地讲解了C++中广度优先搜索（BFS）和深度优先搜索（DFS）的核心原理与实现。文章从迷宫游戏的类比入手，生动形象地解释了两种算法的本质区别：DFS是&quot;一条路走到黑&quot;的递归式搜索，而BFS是&quot;分身撒网&quot;的层次遍历。通过邻接表构建图结构，详细展示了递归版和迭代版DFS的实现代码，并分析了时间复杂度和空间复杂度。本文还特别强调了DFS通过栈实现回退机制的特点，以及实际应用中需要注意的倒序入栈等编程技巧。全文采用大量生活化比喻和代码示例，帮助读者真正理解这两种基]]></description><category></category></item><item><title><![CDATA[暴力YYDS（C++竞赛中的暴力解法：朴实无华但不可或缺的利器 ）]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149833666</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149833666</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 14:39:01 +0800</pubDate><description><![CDATA[C++竞赛暴力解法精要 暴力解法通过穷举所有可能解决问题，是竞赛中的基础策略。适用于小数据范围（n≤20）、部分分获取及算法验证。核心方法包括： 枚举法 - 多层循环遍历组合（如两数之和O(n²)解法） 搜索算法 - DFS用于全排列/回溯，BFS处理最短路径 位运算 - 状态压缩高效枚举子集（n≤20时性能佳） 模拟题 - 严格按题意分步实现 优化技巧：剪枝提前终止无效分支、前缀和减少重复计算、双指针降复杂度、打表预处理空间换时间。竞赛中建议先写暴力保底，再逐步优化，配合对拍验证正确性。典型场景包括子集和]]></description><category></category></item><item><title><![CDATA[快速排序算法详解与洛谷例题实战]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149833485</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149833485</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 14:32:16 +0800</pubDate><description><![CDATA[通过避免完全排序，将时间复杂度优化至线性阶。分属不同分区，则相对位置可能改变，故为。个整数，使用快速排序升序排列（充分利用CPU缓存局部性原理。]]></description><category></category></item><item><title><![CDATA[C++ STL multiset使用指南（万字详解）]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149833282</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149833282</guid><author>Sunnyside_______</author><pubDate>Fri, 01 Aug 2025 14:25:36 +0800</pubDate><description><![CDATA[int id;// 按学号排序// 自动按id排序优先使用find()替代count()检查存在性遍历删除时务必更新迭代器复杂对象必须提供const比较器C++17起利用extract()实现节点转移：auto node = scores.extract(90);// 转移而不复制通过本文的30+代码示例和深度解析，相信你已经掌握multiset的核心用法。它是有序重复数据的瑞士军刀，但在不需要排序的场景下，可能有更优选择。]]></description><category></category></item><item><title><![CDATA[CSP-J/S初赛全面备考指南（C++版）]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149770469</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149770469</guid><author>Sunnyside_______</author><pubDate>Wed, 30 Jul 2025 10:33:58 +0800</pubDate><description><![CDATA[本文为CSP-J/S初赛C++版备考指南，系统梳理了核心考点与备考策略。主要内容包括：1）计算机体系结构与数据表示等基础知识；2）C++指针、内存管理等语法特性；3）算法与数据结构重点，如时间复杂度分析、树结构算法；4）针对单选、程序阅读等题型的解题技巧；5）J组与S组的差异化备考建议。文章特别强调算法题分值占比持续上升的趋势，提供了动态规划、STL容器等高频考点详解，并附有地区分数线差异分析和真题示例，帮助考生高效备考。]]></description><category></category></item><item><title><![CDATA[B4208 [常州市赛 2021] 移动]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149742164</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149742164</guid><author>Sunnyside_______</author><pubDate>Tue, 29 Jul 2025 11:04:19 +0800</pubDate><description><![CDATA[题目分析 本题要求计算教学楼内学生从起点到终点的最短路径，教学楼分为H层，每层M个位置。移动规则如下： 同层移动：可在同一层任意移动，花费为列差的绝对值。 跨层移动：只能通过楼梯在连续的楼层间移动，花费为层差的绝对值。 限制条件：每列的楼梯只能覆盖一段连续楼层。 解题思路 合并楼梯区间：将重叠或相邻的楼梯区间合并，形成更大的连续区间。 预处理楼梯间距离： 使用Floyd算法计算所有楼梯间的最短横向距离。 处理查询： 同层直接计算横向距离。 不同层时： 检查是否在合并后的同一区间内。 枚举所有可达的楼梯组合，]]></description><category></category></item><item><title><![CDATA[C++算法之单调栈]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149722991</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/149722991</guid><author>Sunnyside_______</author><pubDate>Mon, 28 Jul 2025 18:33:30 +0800</pubDate><description><![CDATA[定义：队列中元素保持单调性，常用于求滑动窗口最大值/最小值。例子C++实现片段// 双端队列存索引i++) {// 移除超出窗口的元素if (!// 维护单调递减（队头最大）while (!单调栈是啥：保持元素单调顺序的栈，分递增和递减两种。怎么用：遍历数组，维护栈单调性，适时弹出计算。C++实现：用std::stack，存索引，代码简洁高效。应用广：解决Next Greater Element、柱状图面积等经典问题。核心优势。]]></description><category></category></item><item><title><![CDATA[AIOJ的介绍]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/147656966</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/147656966</guid><author>Sunnyside_______</author><pubDate>Thu, 01 May 2025 23:17:21 +0800</pubDate><description><![CDATA[总的来说，AIOJ作为一个专注于竞赛编程的在线评测系统，具有丰富的题库、多语言支持、实时评测和活跃的社区交流功能，为广大编程爱好者提供了一个优质、便捷的学习和交流平台。同时，AIOJ还提供题库和比赛，用户可以根据自己的兴趣和水平参加不同难度的题目练习和比赛，提高自己的编程水平和竞赛技巧。在以下文章中，我将详细介绍AIOJ的特点、功能和优势。实时评测：AIOJ系统采用实时评测的方式对用户的代码进行评分和反馈，用户可以在提交代码后立即看到评测结果，并根据反馈信息改进自己的代码，加深对编程知识的理解和掌握。]]></description><category></category></item><item><title><![CDATA[CSP-S复赛讲解]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/143261187</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/143261187</guid><author>Sunnyside_______</author><pubDate>Sat, 26 Oct 2024 23:03:12 +0800</pubDate><description><![CDATA[每个怪兽有一个实力 riri​，每个怪兽只可以欺负实力严格小于自己的怪兽，被成功欺负的怪兽出局。当未退出游戏的怪兽都已发起过攻击时，游戏结束。规定一种方案使得未退出游戏的怪兽数量尽可能少。]]></description><category></category></item><item><title><![CDATA[科技与未来]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/143249206</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/143249206</guid><author>Sunnyside_______</author><pubDate>Sat, 26 Oct 2024 10:17:33 +0800</pubDate><description><![CDATA[科技的发展是不可逆转的趋势，它将深刻地影响我们的未来。在这篇文章中，我们探讨了科技的双刃剑效应、科技与人类精神的和谐共生、科技与可持续发展的关系、科技在教育中的应用、科技对工作市场的影响、科技与全球化的关系，以及科技与人类的未来。我们相信，只要我们以积极的态度去拥抱科技，我们就能利用科技的力量来创造一个更加美好的未来。这篇文章只是一个起点，它提供了一个框架，让我们思考科技与未来的关系。在实际的写作过程中，你可以根据自己的兴趣和专业知识，进一步丰富和深化文章的内容。]]></description><category></category></item><item><title><![CDATA[拥抱变化：在不确定性中寻找成长的力量]]></title><link>https://blog.youkuaiyun.com/Sunnyside_______/article/details/143249067</link><guid>https://blog.youkuaiyun.com/Sunnyside_______/article/details/143249067</guid><author>Sunnyside_______</author><pubDate>Sat, 26 Oct 2024 10:07:08 +0800</pubDate><description><![CDATA[变化是不可避免的，但我们可以学会拥抱变化，从中寻找成长的力量。通过保持积极的心态，不断学习和创新，我们可以将变化转化为个人和社会发展的契机。让我们拥抱变化，以开放和创新的精神，共同创造一个更加美好的未来。在这个充满不确定性的时代，变化是我们最可靠的伴侣。它提醒我们，生活永远充满可能性，而我们每个人都有能力去塑造自己的未来。让我们不再害怕变化，而是勇敢地迎接它，用我们的智慧和勇气，共同开创一个充满希望的新世界。]]></description><category></category></item></channel></rss>