- 博客(204)
- 资源 (1)
- 收藏
- 关注
原创 洛谷 P1781 宇宙总统 超详细题解|不用数字存储大数,字符串解法
本文介绍了洛谷P1781宇宙总统题目的解题思路。该题需要处理超长数字的选票比较,由于数字位数远超int/long long的存储范围,必须使用字符串(string)存储。解题核心是自定义比较函数:先比较字符串长度,长度相同则逐位比较数字字符。通过一次遍历即可找到票数最高的候选人编号及其票数,避免了排序带来的复杂度。文中提供了完整代码及详细注释,并对比了错误解法(如使用数值类型存储导致溢出),强调字符串处理大数的重要性。这道题是学习高精度算法的基础,适合刚接触字符串处理的编程新手练习。
2026-06-21 10:17:45
217
原创 【洛谷 P1116 车厢重组】超详细题解|冒泡排序原理 + 逆序对完整推理
本文详细解析了洛谷P1116车厢重组问题,核心结论为:在只能相邻交换的条件下,排序所需的最小操作次数等于序列的逆序对总数。通过分析冒泡排序过程中每次交换恰好消除一个逆序对的特性,证明了该结论的正确性。文章包含完整的算法实现(C++代码)、时间复杂度分析(O(n^2)),以及详细的样例模拟过程。特别强调这是理解排序算法底层逻辑的经典入门题,其核心结论可推广至所有"仅相邻交换求最小排序次数"的问题。对于初学者而言,掌握逆序
2026-06-21 10:01:39
228
原创 洛谷 B2098 整数去重 题解(数组基础遍历版)
本文讲解如何用基础数组和双层循环实现整数去重,保留首次出现的数字并按原序输出。核心思路是将数字存入数组,逐个检查每个数字是否在左侧出现过:若无则输出,有则跳过。文章详细解析了判断重复的逻辑、代码实现(包括数组定义、数据读取、双重循环比对和输出条件),并给出样例运行过程。特别指出新手常见错误(如循环条件错误、标记变量位置不当等),强调这种解法适合初学者掌握数组遍历和去重思想。最终代码时间复杂度O(n²),但直观易懂,是数组入门的经典练习题。
2026-06-07 12:30:04
204
原创 洛谷 B2095 白细胞计数 题解
本文详细解析了洛谷B2095白细胞计数题的解题思路和实现方法。题目要求输入若干浮点数,剔除最大值和最小值后计算剩余数据的平均值,并找出与平均值的最大绝对误差。解题步骤包括:使用1下标数组存储数据、排序处理、剔除极值、计算平均值和最大误差,最后格式化输出结果。文章重点讲解了浮点数绝对值函数fabs的使用、排序区间处理以及常见错误规避方法,并提供了完整的C++实现代码和样例测试说明。该题目综合考察数组操作、排序、浮点运算和格式化输出等基础编程能力。
2026-06-07 12:18:55
350
原创 洛谷 P1428 小鱼比可爱 题解
本文介绍了一道数组双重遍历入门题,要求统计每只小鱼左侧比它可爱的鱼的数量。解题思路采用双重循环:外层遍历每只鱼,内层遍历其左侧所有鱼进行计数。给出了完整的C++代码实现,并分析了易错点(如循环范围、计数器初始化等)。文章还提出了优化方案(桶排序思想)和题目变体(反向统计、条件变形),强调该题对理解数组遍历和统计逻辑的基础作用,是数组入门阶段的经典练习题。
2026-05-16 00:37:26
162
原创 洛谷 P1035 [NOIP2002 普及组] 级数求和 题解
本文介绍了一道经典的NOIP入门题,要求计算调和级数Sₙ=1+1/2+...+1/n,并找到使Sₙ>k的最小正整数n。解题思路是通过循环累加1.0/n(注意使用浮点数避免整数除法错误),当累加和超过k时终止循环并输出n值。文章详细解析了代码实现,重点提示了常见的整数除法错误和循环控制问题,同时指出该题作为循环结构基础练习的重要性。对于k≤15的小数据范围,直接暴力循环即可高效解决,是初学者理解循环累加模式的理想例题。
2026-05-16 00:30:44
175
原创 洛谷 P5715 三位数排序 题解
本文介绍了CSP-J入门组基础排序题的两种解法。题目要求将输入的三个整数(0-100)按升序输出。解法1通过分支语句手动比较交换实现排序,适合初学者理解排序逻辑;解法2使用数组和sort函数,代码简洁高效,是竞赛推荐写法。文章详细说明了两种解法的实现步骤、易错点(如交换变量需用临时变量、sort函数头文件)和注意事项(输出格式、边界值测试),并提供了完整AC代码。此外还介绍了题目拓展方向,如降序输出、n个数排序等。这道题为后续学习更复杂排序算法奠定了基础。
2026-05-16 00:26:20
213
原创 CSP-J 信息学竞赛 数组专题・第 8 课时 字符数组基础与字符串入门操作
本课程针对初中竞赛学员,重点讲解C风格字符数组在竞赛中的应用。课程内容包括:字符数组定义与存储、两种读取方式、字符串长度获取(strlen)、标准遍历模板,以及大小写转换、字符统计、查找定位、字符串逆序等高频操作。通过例题演示和配套练习(如洛谷P5733、P1308等),帮助学员掌握字符串处理基础技能,避免常见错误(如忘记头文件、下标混淆等)。课程强调字符数组作为字符串题型入门核心的重要性,要求学员熟练掌握相关操作,为后续字符串专项学习打下基础。
2026-05-16 00:19:31
225
原创 CSP-J 信息学竞赛 数组专题・第 7 课时 二维数组基础与矩阵常用操作
本文针对初中竞赛生和CSP-J选手,系统讲解二维数组的核心知识点与应用技巧。课程从二维数组的定义、输入输出模板入手,重点讲解矩阵求和、行列求和、对角线遍历、矩阵转置等竞赛常用操作,并强调地图类题目的边界判断方法。通过典型例题和配套练习(包括洛谷P5727、P2615等),帮助学生掌握二维数组在表格、棋盘、迷宫等场景中的应用。课程特别指出行列混淆、嵌套循环错误、对角线公式记混等高频易错点,要求学员从1开始编号以避免边界错误。最后布置了模板默写、洛谷习题和矩阵转置编程等课后作业,为后续字符数组学习打下基础。
2026-05-16 00:15:21
276
原创 CSP-J 信息学竞赛 数组专题・第 6 课时 一维差分数组 区间修改神器
本文讲解差分数组的核心原理与应用,适用于掌握一维前缀和的竞赛选手。差分数组是解决批量区间修改的高效工具,通过修改两个端点即可完成区间整体加减操作。课程内容包括:差分定义与构造、区间修改公式、还原原数组方法、标准代码模板,以及与前缀和的区别。重点强调竞赛中的易错点和解题流程,并配有4道洛谷练习题巩固知识点。差分数组与前缀和是数组处理的两大核心技巧,在CSP-J竞赛中常作为组合考点出现。
2026-05-16 00:10:08
372
原创 CSP-J 信息学竞赛 数组专题・第 5 课时 一维前缀和 核心精讲
本文介绍了CSP-J竞赛中一维前缀和的核心知识点,包括定义、递推公式和区间求和公式。重点讲解了前缀和数组的构建方法(s[i]=s[i-1]+a[i])和区间查询技巧(sum(l,r)=s[r]-s[l-1]),并提供了标准代码模板。文章强调了下标从1开始、s[0]=0的规范,以及处理大数据时使用long long的必要性。通过例题和易错点分析,帮助竞赛选手掌握这一高频考点,并配套了4道洛谷练习题巩固学习效果。最后布置了默写公式、完成习题和预习差分数组的作业任务。
2026-05-16 00:06:18
427
原创 CSP-J 信息学竞赛 数组专题・第 4 课时 桶排序思想与数字频率统计
本文介绍了桶排序(计数统计)的核心思想及其在竞赛中的应用。课程面向已掌握基础排序和数组遍历的CSP-J选手,重点讲解利用数组进行频数统计的方法。主要内容包括:桶排序原理(通过数组下标统计数字出现次数)、标准代码模板、两种常用输出格式(按序输出或还原原序列)、竞赛常见应用场景(频次统计、去重等)以及全局统计数组的优势。文章还提供了课堂例题和配套练习题,强调易错点(如数组范围不足、局部数组未清零等),并总结了桶统计的核心公式和三大常用功能。最后布置了默写模板、完成习题等课后任务,为后续学习前缀和知识打下基础。
2026-05-16 00:01:44
360
原创 CSP-J 信息学竞赛 数组专题・第 3 课时 冒泡排序 + 系统 sort 函数竞赛用法
摘要:本课程面向初中竞赛生和CSP-J入门选手,重点讲解冒泡排序原理和系统sort函数的使用。冒泡排序通过相邻元素比较交换实现排序,适合理解原理;sort函数高效简洁,是竞赛首选。课程涵盖升序/降序实现、易错点及竞赛应用场景,配套例题和练习题帮助巩固知识。掌握排序算法对解决统计、查找等竞赛题目至关重要,为后续高阶算法打下基础。
2026-05-15 23:55:47
397
原创 CSP-J 信息学竞赛 数组专题・第 2 课时 一维数组常用变形操作
本文针对CSP-J竞赛入门选手,重点讲解数组四大变形操作:1.数组逆序(新数组法和原地逆序法);2.元素交换(必须使用临时变量);3.指定元素查找(存在性判断和位置查找);4.简单插入删除(注意更新数组长度)。课程包含标准竞赛模板代码、高频易错点分析和配套练习题,强调统一使用“下标从1开始”的规范写法。掌握这些基础操作是解决30%数组变形题和后续排序算法学习的关键,要求学员能熟练默写模板并独立完成相关竞赛题目。
2026-05-15 23:51:11
733
原创 CSP-J 信息学竞赛 数组专题・第 1 课时 一维数组基础精讲
课程针对初中竞赛生和CSP-J基础选手,重点讲解一维数组核心语法与应用。内容涵盖:1)数组定义(推荐全局定义const int N=1005);2)下标使用规范(建议从1开始避免越界);3)三大必考操作模板(求和、最值查找);4)输入输出标准格式。强调竞赛高频易错点:数组长度不足、初始值错误、局部数组未赋值等。配套4道洛谷练习题(P5715/P1035/P1781/P1428)巩固基础操作。要求学员课后默写模板代码,完成成绩统计等实践作业,为后续高阶算法打下坚实基础。
2026-05-15 23:29:23
816
原创 【GESP 二级】洛谷 B4007 计数 题解
本文分析了GESP2024年6月二级认证的数位统计真题(B4007)。题目要求统计区间[1,n]内数字k出现的总次数,核心考察双重循环结构、数位分解运算和计数累加逻辑。解题思路是通过外层循环遍历数字,内层循环逐位分解判断。文章详细解析了样例验证过程(n=25,k=2),指出易错点如循环条件设置、计数逻辑错误等,并提供了完整C++代码。最后给出5个扩展练习,从基础统计到综合应用,帮助巩固数位统计能力。该题是二级认证中典型的数位处理入门题,为后续学习更复杂数字问题奠定基础。
2026-05-01 14:40:55
353
原创 【GESP 一级】洛谷 B4410 金字塔 题解
本题是GESP一级认证的循环累加题,要求计算1到n的平方和(1²+2²+...+n²)。提供了两种解题方法:基础循环累加(sum+=i*i)和数学公式法(n(n+1)(2n+1)/6)。文章详细解析了题目要点、解题步骤、易错点及代码实现,并给出了5个扩展练习(如立方和、奇数平方和等)来巩固循环累加技能。核心考察点包括基础输入输出、for循环结构和累加逻辑,适合编程初学者掌握基础算法思维。
2026-05-01 12:01:31
394
原创 【GESP 一级】洛谷 B3838 时间规划 题解
本文介绍了GESP2023年6月一级认证真题(洛谷B3838)的解题方法。题目要求计算两个24小时制时刻之间的分钟差,核心思路是将时刻转换为总分钟数后相减。文章详细解析了解题步骤,包括单位换算(小时×60)、差值计算和输入处理,并提供了完整的C++代码实现。同时指出了常见错误点,如单位换算错误和输入顺序错误,并通过样例验证解题逻辑。最后提出了5个扩展练习,帮助巩固时间计算技能。这道题考察了多变量输入、单位换算和整数运算能力,是典型的生活场景应用题。
2026-05-01 11:52:16
418
原创 【GESP 一级】洛谷 B3864 小明的幸运数 题解
本文分析了GESP2023年9月一级认证真题(洛谷B3864),这是一道条件筛选与累加求和题。题目要求输入三个整数k、L、R,计算区间[L,R]内满足个位数为k或是k的倍数的数字之和(不重复累加)。解题核心在于使用for循环遍历区间,通过i%10==k||i%k==0条件判断实现筛选和去重,最后累加符合条件的数字。文章详细解析了考察点、解题思路、易错点(如边界处理、重复计算)并提供了完整C++代码,同时建议了5个扩展练习(条件修改、位数扩展、反向筛选等)以巩固知识点。该题综合考察了循环、条件判断、取模运算等
2026-05-01 11:44:24
556
原创 【GESP 一级】洛谷 B4409 商店折扣 题解
这道GESP一级编程题考察两种优惠方案的价格比较。题目要求:给定满x减y和n折两种优惠方式,计算购物总价p对应的最低支付金额并保留两位小数输出。解题关键点包括:1)判断满减条件(p≥x);2)正确进行浮点数运算(n/10.0);3)格式化输出保留两位小数。易错点在于整数除法错误和满减条件判断。典型解法:分别计算方案1(满足条件则p-y)和方案2(p*n/10.0),取最小值后使用printf("%.2f")或cout+setprecision(2)输出。该题训练条件判断、浮点运算和格式化
2026-04-25 10:44:23
360
原创 【GESP 一级】洛谷 B3953 找因数 题解
本文解析GESP2024年3月一级真题(B3953题),要求输出给定正整数a(a≤1000)的所有升序排列的因数。核心考察基础输入输出、循环结构、取模运算及因数概念。解题思路为遍历1到a,通过a%i==0判断因数并输出。易错点包括循环范围、判断条件和输出格式。提供C++示例代码,强调该题对理解数论基础和后续算法学习的重要性,如质数判断、因数统计等衍生应用。(150字)
2026-04-24 23:49:58
294
原创 【GESP 一级】洛谷 B4063 奇数和偶数 题解
本文解析GESP2024年12月一级认证真题(洛谷B4063),该题要求统计n个正整数中奇数和偶数的个数。解题核心包括:1)循环读取n个数字;2)通过取模运算%2判断奇偶性;3)使用odd和even计数器记录结果。易错点包括计数器初始化、判断条件写反及输出格式错误。文章提供了完整C++代码,并强调这是编程入门的基础题型,掌握后可解决类似统计问题。题目考察循环控制、条件判断和计数累加能力,适合编程初学者练习。
2026-04-24 23:43:57
321
原创 【GESP 一级】洛谷 B4355 值日 题解
这篇文章介绍了GESP2025年6月一级认证真题中的最小公倍数求解问题。题目要求计算两个人每隔m天和n天值日一次后再次同一天值日的最小天数。文章详细解析了两种解题方法:枚举法(从较大数开始逐个验证)和辗转相除法(通过最大公约数计算),并提供了完整的C++代码实现。重点讲解了数学概念、算法思路、易错点以及实际应用场景(如公交车发车问题),强调掌握最小公倍数的计算对解决周期性重合问题的重要性。文章内容针对编程初学者,兼顾基础概念和实用技巧。
2026-04-24 23:36:51
762
原创 【GESP 一级】洛谷 B4354 假期阅读 题解
本文解析GESP2025年6月一级认证真题(洛谷B4354),考察基础编程能力。题目要求计算在假期t天内,每天最多读k页书的情况下,最多能读多少页n页的书。解题关键:1)读取n、k、t三个变量;2)计算理论阅读量k×t;3)取理论值与n的最小值作为结果。提供两种实现方法:if-else判断和min函数调用,并提醒注意输入顺序、边界值等易错点。通过该题可掌握基本输入输出、算术运算和条件判断,适用于类似应用场景如购物计算、运动打卡等问题。
2026-04-24 23:21:41
384
原创 【GESP 一级】洛谷 B4258 四舍五入 题解
本文介绍了GESP一级认证中的一道基础编程题(洛谷B4258),要求将输入的n个整数四舍五入到最近的整十数并逐行输出。解题核心是掌握基础输入输出、for循环和整数运算,特别是利用公式"(a+5)/10*10"实现四舍五入。文章分析了题目考察点、解题思路、易错点,并提供了完整C++代码。通过这道题,可以掌握循环结构和整数运算技巧,并能举一反三解决类似问题,为GESP一级考试打下坚实基础。
2026-04-24 23:12:11
689
原创 从 0 到 1 做了个扫雷游戏!带用户系统 + 个性化设置 + 一键打包 EXE(附完整流程)
利用java.swing实现扫雷游戏优化版本,一键打包exe文件,双击就能玩,不用装任何软件~
2025-12-09 14:51:27
389
原创 洛谷 P4715 淘汰赛 - C++ 实现与详细解析
摘要: 题目给定2^n个国家及其能力值(各不相同),采用单淘汰赛制(相邻编号两两对决,高能力者胜出)直至决出冠军。要求输出亚军国家编号。解题关键在于模拟比赛过程,通过遍历找出能力值仅次于冠军的国家。具体步骤包括:读取输入数据,遍历找出冠军,再遍历找出亚军(排除冠军后的最高能力国家)。算法时间复杂度为O(2^n),空间复杂度为O(2^n),适用于n≤7的小规模数据。
2025-11-19 22:12:55
915
原创 洛谷 P2234 营业额统计 | C++ 实现与详解
本文提出了一种高效计算公司每日营业额最小波动值之和的算法。通过利用STL中的set数据结构维护有序营业额数据,可以快速查找当前营业额的前驱和后继元素,从而确定最小波动值。算法的时间复杂度为O(nlogn),能够高效处理32767天的数据规模。具体实现包括读取输入数据、利用set进行插入和前驱后继查找、计算最小差值并累加结果等步骤。示例测试验证了算法的正确性,输入6512546得到输出12,与预期结果一致。文章还讨论了复杂度分析、边界情况处理和注意事项,为类似问题提供了通用解决方案。
2025-11-17 06:30:00
1048
原创 洛谷 P1241 括号序列 | 栈的经典应用与C++实现
本文解析了洛谷P1241括号匹配问题。题目要求对包含'()[]'的字符串进行补全,使其成为合法序列。核心算法利用栈结构进行括号匹配:扫描时左括号入栈,右括号与栈顶匹配则标记并出栈。最后补全未匹配的括号。代码实现采用两次扫描,时间空间复杂度均为O(n)。典型测试用例验证了算法的正确性,如输入"([()"输出"()"。该问题体现了栈在语法分析中的典型应用,可拓展到多类型括号匹配等变种问题。
2025-11-17 06:15:00
1219
原创 洛谷 P1540 机器翻译 | 详细解析与C++实现
本文介绍了一种基于队列和哈希集合的机器翻译软件内存管理模拟方法。题目要求计算翻译N个单词的文章时查词典的次数,其中内存容量为M,采用先进先出(FIFO)策略进行单词替换。通过维护一个队列存储当前内存中的单词顺序,并使用哈希集合快速判断单词是否存在,实现了高效的模拟过程。当内存已满时,移除队列头部最早进入的单词,并将新单词加入队列尾部。该方法时间复杂度为O(N),空间复杂度为O(M),能够有效处理题目给出的数据规模。代码实现展示了如何使用C++标准库的queue和unordered_set来完成这一模拟过程,
2025-11-17 06:00:00
1373
原创 洛谷 P4387 验证栈序列 | C++ 实现与详解
题目要求验证给定入栈序列pushed是否能通过合法栈操作得到目标出栈序列popped。解决方案采用栈模拟法:遍历pushed序列依次入栈,同时检查栈顶是否匹配popped序列元素,匹配则出栈。最终栈为空则输出"Yes",否则输出"No"。算法时间复杂度O(n),空间复杂度O(n)。示例输入包含两组测试数据,分别对应合法和非法出栈序列,输出结果为Yes和No。关键点在于利用栈的LIFO特性实时匹配popped序
2025-11-16 18:13:38
1061
原创 洛谷 P2058 海港 | 队列优化解法详解
本文提出了一种基于队列和哈希表的高效算法,用于统计24小时内到达海港乘客的国籍数量。算法通过维护一个时间窗口内的乘客队列,动态更新国籍计数:移除超时乘客时减少对应计数,添加新乘客时增加新国籍。采用O(1)时间复杂度处理每个乘客,整体复杂度为O(n)。关键优化包括快速IO、实时增量更新和提前终止检查。该方案能高效处理10^5量级的数据,适用于时间序列统计问题。测试验证表明算法正确维护24小时窗口,并有效处理边界情况。
2025-11-16 17:43:47
1022
原创 洛谷 P1160 队列安排 | 链表与模拟的巧妙应用
本文提出使用双向链表解决学生排队问题。通过构建带有哨兵节点的双向链表,实现学生位置的快速插入(左/右)和标记删除操作。算法采用O(N)时间构建队列,O(M)时间标记删除,最后遍历输出未被删除的学生编号。关键点包括:设计Node结构体存储学号及指针、使用哨兵节点简化边界处理、通过students数组实现O(1)节点查找。这种方法高效处理动态插入和删除,适用于类似场景如LRU缓存。代码展示了完整的链表操作逻辑和内存管理,确保了算法的正确性与稳定性。
2025-11-16 17:01:18
1302
原创 洛谷 P1996 约瑟夫问题 | 经典模拟解法与AC代码全解析
本文介绍约瑟夫环问题的数组模拟解法。n个人围成圈,从1报数到m时出列,输出出圈顺序。核心是动态维护数组,计算每轮出圈位置(current+m-1)%剩余人数。时间复杂度O(n²),空间复杂度O(n),适用于小规模数据(n≤100)。关键点包括正确索引计算和数组更新,常见错误有索引越界和遗漏最后一人。该方法直观展示了环形结构的处理技巧。
2025-11-13 08:14:50
779
原创 洛谷 P1449 后缀表达式计算 | 数组模拟栈的正确实现
本文详细分析了后缀表达式计算中的常见错误和正确实现方法。重点包括:操作数顺序管理(特别是减法和除法)、栈指针的正确维护、多位数字处理以及最终结果位置确定。通过AC验证的代码示例,展示了数组模拟栈的实现方式,强调栈顶指针管理、运算符处理模板等最佳实践。文章还提供了复杂度分析、测试用例验证及边界处理建议,帮助读者避免操作数顺序错误、栈管理不当等常见问题,掌握后缀表达式计算的核心实现技巧。
2025-11-12 06:00:00
1391
原创 洛谷 P3613 寄包柜 | 高效存储与查询的哈希表解决方案
本文提出了一种高效的超市寄包柜管理系统设计方案。系统采用动态哈希表结构存储物品信息,使用vector<unordered_map<int,int>>实现柜子和格子的两级索引。该方法具有O(1)平均时间复杂度的存取操作,仅存储实际使用格子以优化内存。文章详细说明了数据结构选择、算法流程和复杂度分析,并通过示例演示了系统操作。该方案能高效处理最大规模数据(n,q≤1e5),在时空效率上均满足题目要求。
2025-11-11 16:49:12
1110
原创 洛谷 P3156 询问学号 | 数组索引优化与高效查询
本文介绍了一种高效的静态数据查询方法,针对校园场景中学生学号的快速查询问题。通过直接寻址表(数组索引法),将n个学生的学号按顺序存储,实现O(1)时间复杂度的单次查询。文章分析了问题规模(n≤2×10^6,m≤2×10^6),提出使用动态数组存储学号,并给出C++实现代码,包括输入优化技巧。该方法总时间复杂度为O(n+m),空间复杂度为O(n),能高效处理大规模数据。示例演示验证了方案的可行性,适用于需要快速查找静态序列元素的场景。
2025-11-11 06:00:00
1113
原创 洛谷 P1825 Corn Maze S:BFS 迷宫最短路径完全解析
本文分析了玉米迷宫最短路径问题的BFS解法。迷宫包含墙壁、草地、传送装置和起终点,其中传送装置可双向零耗时移动。核心算法采用BFS处理常规移动(耗时1)和传送(耗时0)两种状态,通过坐标比对实现传送端点匹配。代码使用结构体存储位置和步数,队列保证首次到达即为最短路径。关键点包括:传送强制性和双向性处理、步数精确控制、访问标记防止重复。算法复杂度O(N×M),已通过测试验证正确性,适用于带特殊规则的图搜索问题。
2025-11-10 21:30:54
1383
原创 洛谷 P1032 字串变换:BFS 高效解法详解
本文解决字符串转换问题,给定初始字符串A、目标字符串B和最多6条替换规则,要求在10步内找到最少转换步数,否则输出“NOANSWER!”. 采用广度优先搜索(BFS)算法,通过状态队列处理所有可能的转换路径,并使用哈希表记录已访问状态以避免重复计算。算法包含严格步数限制和全面规则匹配,确保找到最优解。代码实现采用C++标准库,高效处理字符串替换和状态管理,适用于各类字符串转换问题。
2025-11-09 12:36:00
1044
原创 洛谷 P1162 填涂颜色 | DFS 解法详解
本文提出了一种解决n×n方阵闭合圈问题的DFS算法。通过逆向思维,从边界开始深度优先搜索标记所有可达的0(外部点),剩余的未被标记的0即为闭合圈内部点(替换为2)。该方法采用网格扩展技巧简化边界处理,使用递归DFS实现高效标记。算法时间复杂度为O(n²),空间复杂度可接受,适用于n≤30的情况。关键优势在于思路简洁、代码直观,有效避免了直接判断闭合圈形状的复杂性。测试验证表明该方案正确可靠,特别适合CSP竞赛中的类似连通性问题。
2025-11-07 06:00:00
1008
Java Swing 星际争霸简易版(策略游戏 Demo)
2025-12-25
Java Swing 连连看小游戏(完整源码)
2025-12-25
基于Java Swing开发的经典扫雷游戏源码,包含完整GUI界面与事件处理逻辑
2025-09-22
基于Java 开发的经典画图程序源码,实现铅笔、几何图形、填色等核心功能
2025-09-22
【信息学竞赛】CSP-J/S初赛备考指南:算法、数据结构与计算机基础知识综合解析
2025-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅