<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Tanecious的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Tanecious</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Tanecious]]></copyright><item><title><![CDATA[蓝桥杯备赛：Day8-小苯的异或和]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159932525</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159932525</guid><author>Tanecious</author><pubDate>Tue, 07 Apr 2026 23:59:29 +0800</pubDate><description><![CDATA[题目要求计算数组中所有两两元素异或结果的总异或和。关键思路是利用异或性质和贡献法：每个元素出现(n-1)次，若(n-1)为偶数则抵消为0，否则保留所有元素的异或总和。该方法将O(n²)暴力计算优化为O(n)时间，利用异或的自反性（x^x=0）和组合数学的计数原理。核心代码预先计算总异或，再根据(n-1)的奇偶性输出0或总异或值，避免了超时问题。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day8-小红杀怪]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159932518</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159932518</guid><author>Tanecious</author><pubDate>Tue, 07 Apr 2026 23:58:05 +0800</pubDate><description><![CDATA[这篇文章介绍了小红杀怪问题的算法思路与C++实现。题目要求用最少技能次数击杀两只怪物，玩家可选择单体攻击或群体攻击。核心解法是枚举群体攻击次数k（0-20次），计算剩余血量所需的单体攻击次数，从而找到总次数的最小值。文章提供了完整的代码实现，重点解释了枚举策略的选择、向上取整公式的应用以及边界处理等关键点。该解法利用了题目中参数范围小的特点，通过枚举简化了搜索空间，确保在合理时间内找到最优解。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day7- P10424 [蓝桥杯 2024 省 B] 好数]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159896150</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159896150</guid><author>Tanecious</author><pubDate>Mon, 06 Apr 2026 23:38:55 +0800</pubDate><description><![CDATA[本文介绍了蓝桥杯2024省赛B题&quot;好数&quot;的解题方法。题目要求统计1到N中满足奇数位数字为奇数、偶数位数字为偶数的数字个数。通过C++实现的核心算法，从低位到高位逐位检查，利用取模和整除运算进行数字拆分，并采用剪枝优化（仅检查个位为奇数的数字）提高效率。关键点包括正确的进制拆分顺序、复杂度控制和位权处理，同时指出了常见的编码陷阱，如忘记降位操作和变量更新遗漏。该解法时间复杂度为O(N)，适用于N≤10^7的数据规模。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day7- U535982 C-小梦的AB交换]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159896140</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159896140</guid><author>Tanecious</author><pubDate>Mon, 06 Apr 2026 23:37:30 +0800</pubDate><description><![CDATA[题目要求将长度为2n的AB串通过最少交换操作变为交替排列。核心思路是比对两种目标模式（ABAB...和BABA...），统计差异点个数。由于每次交换可同时修正两个差异位，最终答案为两种模式差异点数的较小值除以2。解题时需注意变量初始化、字符引号使用、循环范围等细节。代码通过遍历字符串计算差异点数，取最小值输出交换次数。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day6-B-小紫的劣势博弈 (牛客周赛 Round 85)]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159866337</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159866337</guid><author>Tanecious</author><pubDate>Mon, 06 Apr 2026 00:12:37 +0800</pubDate><description><![CDATA[【代码】蓝桥杯备赛：Day6-B-小紫的劣势博弈 (牛客周赛 Round 85)]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day5-P1706 全排列问题]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159836926</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159836926</guid><author>Tanecious</author><pubDate>Sun, 05 Apr 2026 00:23:16 +0800</pubDate><description><![CDATA[本文解析了全排列问题的DFS解法，通过递归实现1~N数字的所有排列组合。核心代码展示了如何利用DFS深度优先搜索填充位置数组，并强调回溯机制的关键作用：在完成一种排列后释放数字，确保参与其他排列分支。文章详细拆解了递归过程，特别是第二层工人的工作流程，说明状态维护和回溯操作。最后总结了常见错误，如return位置错误和忽略回溯导致的排列缺失。该解法时间复杂度为O(N!)，严格遵循字典序和5位场宽格式要求。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day5-P1036 选数]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159836915</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159836915</guid><author>Tanecious</author><pubDate>Sun, 05 Apr 2026 00:22:26 +0800</pubDate><description><![CDATA[本文介绍了洛谷P1036选数问题的解题思路，重点分析了组合搜索和质数判定的实现方法。通过DFS组合模型，利用start参数确保选取下标的单调性，避免重复排列。采用隐式回溯技巧传递sum参数，无需手动撤销操作。质数判定使用i*i&lt;=n的标准优化方法，时间复杂度为O(√N)。该解法适用于n≤20的数据规模，能高效统计k个数字和为质数的组合数。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day4-P9749 公路]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159807621</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159807621</guid><author>Tanecious</author><pubDate>Sat, 04 Apr 2026 00:47:14 +0800</pubDate><description><![CDATA[本文介绍了洛谷P9749公路问题的贪心算法解法。题目要求计算开车经过N个站点时的最小油费开销，每个站点油价不同，油箱容量无限。核心思路是维护历史最低油价和剩余路程额度：每当到达新站点时更新最低油价；若剩余油量不足，按历史最低价补足所需油量并计算余量。关键点包括：1)单调贪心思想，只需比较当前和历史最低油价；2)使用向上取整技巧计算需购买油量；3)正确处理余量以避免误差。注意事项：必须使用long long防止溢出，数组要多开空间。作者还分享了将min_price初始化为0的错误教训，强调应设为第一站油价或极]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day4-P10387 训练士兵]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159807612</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159807612</guid><author>Tanecious</author><pubDate>Sat, 04 Apr 2026 00:46:25 +0800</pubDate><description><![CDATA[摘要： 题目P10387要求以最小成本训练士兵达标。每个士兵有单练费用$p_i$和需求次数$c_i$，可选择团购（每次$S$元训练所有未达标士兵）。贪心策略：按$c_i$升序排序，动态维护未达标士兵的单练总价total_p，每轮选择$\min(total_p, S)$作为当前训练成本。当士兵达标时，从total_p中剔除其费用。时间复杂度$O(N\log N)$，需注意数据范围（用long long）和排序方向（升序才能正确模拟时间线）。易错点包括排序逻辑错误和数组越界访问。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day3-P1102 A-B 数对]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159773328</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159773328</guid><author>Tanecious</author><pubDate>Fri, 03 Apr 2026 00:26:25 +0800</pubDate><description><![CDATA[本文介绍了P1102 A-B数对问题的解法。题目要求在给定数列中找到满足A-B=C的数对数量。核心思路是将问题转化为A=B+C，通过哈希表统计数字出现次数，实现O(N log N)的高效查找。关键点包括：公式变形优化、哈希表计数处理、注意数据类型防止溢出。文章还指出了常见错误，如输出位置不当和逻辑顺序错误，强调应先完整读入数据再处理。该解法适用于大规模数据，避免了暴力枚举的超时问题。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day3-P1918 保龄球]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159773295</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159773295</guid><author>Tanecious</author><pubDate>Fri, 03 Apr 2026 00:24:11 +0800</pubDate><description><![CDATA[本文介绍了使用STL map解决保龄球位置查询问题的方法。题目要求在N堆保龄球中快速查询指定球数对应的位置编号。核心思路是建立从球数到位置的映射，利用map的O(logN)查找特性高效处理查询。关键点包括：反向索引映射、I/O优化使用&quot;\n&quot;替代endl、注意long long类型防止溢出。常见错误包括映射方向错误、输入作用域不当等。该解法时间复杂度为O((N+Q)logN)，适用于10^5级别的数据规模。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day2-P5266 学籍管理]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159739080</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159739080</guid><author>Tanecious</author><pubDate>Thu, 02 Apr 2026 00:39:11 +0800</pubDate><description><![CDATA[本文介绍了如何使用C++ STL中的map容器实现学籍管理系统。系统支持添加/更新、查询、删除学生信息和统计人数4种操作，核心是利用map的O(logN)时间复杂度特性。重点讲解了map的基本操作（插入/更新、删除、查找和容量统计）及注意事项，特别强调应使用count()而非[]操作符进行存在性判断以避免静默插入。文中还分享了作者在开发过程中遇到的静态变量初始化和switch作用域等易错点，并提供了完整的代码实现，适合需要处理大量数据的场景。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day2-B3612 求区间和]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159739061</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159739061</guid><author>Tanecious</author><pubDate>Thu, 02 Apr 2026 00:38:12 +0800</pubDate><description><![CDATA[本文介绍了使用前缀和算法高效求解区间和问题。通过预处理构建前缀和数组Sum，可以在O(1)时间内完成每次区间查询。关键点包括：1)前缀和递推公式Sum[i]=a[i]+Sum[i-1]；2)区间和公式Sum[r]-Sum[l-1]；3)注意数组下标从1开始。文章还总结了常见错误，如公式记忆偏差和动态数组定义错误，并强调使用long long防止溢出。该算法将时间复杂度从O(MN)优化至O(N+M)，适用于大规模数据查询。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day1-P1101 单词方阵]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159700059</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159700059</guid><author>Tanecious</author><pubDate>Wed, 01 Apr 2026 01:00:29 +0800</pubDate><description><![CDATA[单词可以沿 8 个方向（上、下、左、右、左上、右上、左下、右下）直线延伸。的字母方阵中找出所有的。]]></description><category></category></item><item><title><![CDATA[蓝桥杯备赛：Day1-奖学金]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/159700035</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/159700035</guid><author>Tanecious</author><pubDate>Wed, 01 Apr 2026 00:57:06 +0800</pubDate><description><![CDATA[comp。]]></description><category></category></item><item><title><![CDATA[Linux系统编程--线程概念与控制]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/152054830</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/152054830</guid><author>Tanecious</author><pubDate>Thu, 25 Sep 2025 00:24:41 +0800</pubDate><description><![CDATA[本文从操作系统角度重新定义了进程和线程的概念：进程是系统资源分配的基本实体，而线程是CPU调度的基本单位。Linux通过独特的轻量级进程（LWP）模型实现线程，多个task_struct共享同一地址空间来模拟多线程。与传统操作系统不同，Linux内核不区分进程和线程，统一使用task_struct进行管理调度。文章还通过&quot;家庭模型&quot;类比，形象说明进程如同资源分配的家庭单位，线程则是共享资源的家庭成员。这种设计使Linux线程实现更高效，完全复用进程管理机制，无需额外线程调度逻辑。]]></description><category></category></item><item><title><![CDATA[Linux系统编程--进程信号]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/151923979</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/151923979</guid><author>Tanecious</author><pubDate>Sun, 21 Sep 2025 11:23:09 +0800</pubDate><description><![CDATA[本文介绍了Linux进程信号的概念与应用。首先通过生活实例类比信号机制，如闹钟、交通灯等，解释信号的核心特性是中断当前任务处理紧急事件。然后通过代码示例展示如何捕捉和处理信号（如Ctrl+C对应的2号信号），并详细阐述了前台与后台进程的区别及管理方法。重点讲解了进程的同步与异步处理机制，说明信号是一种异步通知方式，能够在不阻塞主进程的情况下处理外部事件。文章还介绍了任务控制命令（jobs、fg、bg）和终止后台进程的方法，帮助读者深入理解信号在系统进程管理中的作用。]]></description><category></category></item><item><title><![CDATA[Linux系统编程--进程间通信]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/151372036</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/151372036</guid><author>Tanecious</author><pubDate>Tue, 09 Sep 2025 21:38:05 +0800</pubDate><description><![CDATA[本文介绍了进程间通信(IPC)的概念和实现原理。首先阐述了进程独立性与协作需求之间的矛盾：进程需要独立性保证稳定性，但实际应用中又需要协作完成复杂任务。然后说明了IPC的三个主要目的：数据传输、资源共享和通知控制。文章重点分析了管道这一经典IPC机制，包括其基于文件系统的设计思想，以及匿名管道通过fork()继承文件描述符表和pipe()系统调用实现进程间通信的具体原理。最后强调了标准规范对跨平台IPC实现的重要性，如System V IPC、POSIX标准等。全文围绕&quot;让不同进程看到同一份资源&]]></description><category></category></item><item><title><![CDATA[Linux系统编程--库的制作与原理]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/151229872</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/151229872</guid><author>Tanecious</author><pubDate>Fri, 05 Sep 2025 19:54:47 +0800</pubDate><description><![CDATA[本文介绍了库的概念、分类及制作原理。库是预先编写好的可复用代码，分为静态库（.a/.lib）和动态库（.so/.dll）。重点讲解了静态库的制作流程：首先将源文件编译为目标文件（.o），然后使用ar命令打包成静态库（.a）。使用时通过gcc的-I、-L、-l选项指定头文件路径、库文件路径和库名。最后说明了如何将自定义库安装到系统标准路径，以及用Makefile实现自动化构建。静态库通过直接链接到可执行文件中实现代码复用。]]></description><category></category></item><item><title><![CDATA[Linux系统编程--Ext系列文件系统]]></title><link>https://blog.youkuaiyun.com/Tanecious/article/details/151140728</link><guid>https://blog.youkuaiyun.com/Tanecious/article/details/151140728</guid><author>Tanecious</author><pubDate>Thu, 04 Sep 2025 09:00:00 +0800</pubDate><description><![CDATA[摘要：本文介绍了Ext系列文件系统的概念及其与磁盘结构的关系。首先阐述了文件系统的基本功能——管理未打开文件，随后详细解析了磁盘的物理结构（盘片、磁头、传动臂等）和存储结构（磁道、扇区、柱面）。重点描述了CHS寻址方式和磁盘逻辑结构，将磁盘抽象为三维数组，进而转换为LBA地址。通过对比磁带结构，说明了磁盘数据的线性读取逻辑，并举例说明了LBA地址与CHS定位的转换过程。文章从硬件层到操作系统层，系统性地讲解了磁盘管理的基础原理。]]></description><category></category></item></channel></rss>