<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[人工智能高校教师｜程序设计竞赛教练｜青少年GESP C++导师 “让代码有温度，让算法会说话”欢迎同行、家长、OIer 一起交流，让每一次 Ctrl+S 都成为点亮未来的火花。]]></title><description><![CDATA[竞赛题解：每日一题，附完整代码与数据生成器，从新手村到金牌区全覆盖。
• 青少年专栏：专为 GESP C++ 1-8 级打造的“图解算法”系列，让家长也能看懂。
目标只有一个：让每一次 WA 都能变成下一次 AC 的垫脚石。]]></description><link>https://blog.youkuaiyun.com/hl026</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hl026]]></copyright><item><title><![CDATA[3.数制和编码知识点总结]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/167226728</link><guid>https://blog.youkuaiyun.com/hl026/article/details/167226728</guid><author>hl026</author><pubDate>Wed, 07 Oct 2026 23:58:30 +0800</pubDate><description><![CDATA[本文系统总结了C++中数制与编码的核心知识点，涵盖二进制、八进制、十六进制的表示与转换方法，重点讲解原码、反码、补码的定义及负数补码转十进制的两种方法。结合真题解析，澄清常见误区（如进制效率误解），并提供十进制转任意进制的通用代码模板。最后通过GESP编程题展示进制判断逻辑：根据字符串最大字符判断其可能的进制范围，实现高效判断。内容全面，理论与实践结合，适用于计算机基础学习与竞赛备考。]]></description><category></category></item><item><title><![CDATA[2、字符串知识点总结]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/167226512</link><guid>https://blog.youkuaiyun.com/hl026/article/details/167226512</guid><author>hl026</author><pubDate>Wed, 07 Oct 2026 23:45:40 +0800</pubDate><description><![CDATA[本文系统总结C++字符串知识点，涵盖字符数组与std::string的定义、初始化、输入输出及常用操作。重点对比了C风格字符串（如cin.getline、strlen等）与现代string类（如getline、substr、find等）的使用差异，强调string在安全性与便捷性上的优势。通过真题“密码合规检测”演示了两种实现方式，突出字符串处理在实际编程中的应用，帮助掌握字符串操作的核心技巧。]]></description><category></category></item><item><title><![CDATA[1、数组知识点总结]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/167226147</link><guid>https://blog.youkuaiyun.com/hl026/article/details/167226147</guid><author>hl026</author><pubDate>Wed, 07 Oct 2026 23:31:37 +0800</pubDate><description><![CDATA[本文系统总结C++数组核心知识点：数组定义需指定常量长度，推荐使用vector或全局大数组应对动态需求；初始化支持部分赋值（自动补0）；下标从0开始，越界访问会导致未定义行为；数组名不可直接赋值，局部数组需手动初始化。结合真题解析，掌握数组遍历与应用，如储蓄罐计数、购物决策等场景，强化编程实践能力。]]></description><category></category></item><item><title><![CDATA[详解STL容器之——vector]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/152379516</link><guid>https://blog.youkuaiyun.com/hl026/article/details/152379516</guid><author>hl026</author><pubDate>Fri, 03 Oct 2025 03:19:32 +0800</pubDate><description><![CDATA[本文全面介绍了C++标准模板库中的vector容器。vector作为动态数组，具有自动扩容、内存管理、丰富接口和安全访问等优势。文章详细讲解了vector的基本操作（初始化、访问、增删元素）、遍历方式（下标、迭代器、范围循环）、常用算法（排序、查找、统计）以及高级用法（存储自定义类型、二维vector）。特别强调了性能优化技巧，如预分配容量和使用emplace_back。最后通过图书管理系统案例展示vector的实际应用，并总结了使用注意事项（迭代器失效、性能考量）和替代容器选择。掌握vector是高效使用]]></description><category></category></item><item><title><![CDATA[数位之和-B4036 [GESP202409 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150471111</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150471111</guid><author>hl026</author><pubDate>Thu, 21 Aug 2025 13:30:00 +0800</pubDate><description><![CDATA[摘要 本文介绍了判断&quot;美丽数字&quot;的问题：当一个正整数的各位数字之和能被7整除时即为美丽数字。程序需要处理n个正整数并输出判断结果。文章分析了数位处理问题的通用解法，包括分解数字各位的方法（%10和/10操作），并给出了暴力解法的C++实现。此外，还扩展了三个相关数位处理问题：统计奇偶位数差、判断回文数、统计相邻数字递增对。这些问题的核心解法都涉及分解数字各位并进行特定计算，展现了数位处理问题的相通性。]]></description><category></category></item><item><title><![CDATA[数位和-洛谷B4065 [GESP202412 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150474648</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150474648</guid><author>hl026</author><pubDate>Thu, 21 Aug 2025 09:00:00 +0800</pubDate><description><![CDATA[【摘要】题目要求计算n个正整数的最大数位和。数位和指数字各位相加之和，如12345的数位和为15。解法是：读取每个数后，通过循环取各位并累加，比较并更新最大数位和。关键点：1）数值范围大（≤10^12），需用long类型；2）需处理边界情况（如n=0或极大值）。代码虽在Dev-C++通过，但洛谷因测试数据更严格可能报错，需确保数据类型和边界处理完善。最终输出所有数中的最大数位和。]]></description><category></category></item><item><title><![CDATA[寻找数字-B4064 [GESP202412 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150474378</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150474378</guid><author>hl026</author><pubDate>Wed, 20 Aug 2025 13:00:00 +0800</pubDate><description><![CDATA[摘要：该问题要求判断给定的正整数a是否能表示为某个正整数b的四次方。对于每组测试数据，通过计算a的四次方根并验证其四次方是否等于a来判定结果。若存在满足条件的b则输出，否则输出-1。关键点在于避免暴力搜索，采用数学方法直接求解四次方根以提高效率。输入数据规模较大（1≤t≤10^5），需保证算法时间复杂度为O(1)每测试用例。]]></description><category></category></item><item><title><![CDATA[平方之和 - 洛谷B4002 [GESP202406 二级]]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150469518</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150469518</guid><author>hl026</author><pubDate>Wed, 20 Aug 2025 07:45:00 +0800</pubDate><description><![CDATA[题目要求判断给定的正整数是否能表示为两个正整数的平方和。对于每个数a_i，遍历可能的x值，检查是否存在满足x² + y² = a_i的整数y。方法包括：读取输入n和a_i，对每个a_i遍历x从1到√a_i，计算y=√(a_i -x²)，若y为整数且大于0则输出&quot;Yes&quot;，否则输出&quot;No&quot;。注意每次循环前重置标志变量。时间复杂度最坏为O(n√a_i)。]]></description><category></category></item><item><title><![CDATA[计数-洛谷B4007 [GESP202406 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150470531</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150470531</guid><author>hl026</author><pubDate>Wed, 20 Aug 2025 01:30:00 +0800</pubDate><description><![CDATA[小杨认为自己的幸运数是正整数 k（注：保证 1≤k≤9）。小杨想知道，对于从 1 到 n 的所有正整数中， k 出现了多少次。从 1 到 25 中，2 出现的正整数有 2,12,20,21,22,23,24,25 ，一共出现了 9 次。输出从 1 到 n 的所有正整数中， k 出现的次数。对于全部数据，保证有 1≤n≤1000,1≤k≤9。第一行包含一个正整数 n。第二行包含一个正整数 k。]]></description><category></category></item><item><title><![CDATA[小杨做题-洛谷B3923 [GESP202312 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150466338</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150466338</guid><author>hl026</author><pubDate>Tue, 19 Aug 2025 07:45:00 +0800</pubDate><description><![CDATA[题目描述小杨做题的规律：第1天做a道，第2天做b道，从第3天起每天做前两天之和。若某天做题数≥m，则后续停止做题。求第N天时的总做题数。解题思路采用递推方法计算每天题数，若某天题数≥m则提前终止。输入为a,b,m,N（0≤a,b≤10，a,b&lt;m&lt;1,000,000，3≤N≤364）。关键点在于处理终止条件。代码实现提供了变量和数组两种方法，分析其优缺点：数组更直观但可能浪费空间；变量更高效但调试稍难。建议根据N的大小选择合适方法。]]></description><category></category></item><item><title><![CDATA[ 乘法问题-洛谷B3954 [GESP202403 二级]]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150467503</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150467503</guid><author>hl026</author><pubDate>Tue, 19 Aug 2025 07:00:00 +0800</pubDate><description><![CDATA[摘要：题目要求计算给定n个正整数的乘积，若结果超过10^6则输出&quot;&gt;1000000&quot;。解题时需注意：1) 初始化乘积为1；2) 逐个相乘并实时检查是否超过阈值，若超过可提前终止；3) 避免整数溢出（建议使用long long类型存储乘积）。优化后的代码直接比较1000000而非pow(10,6)，并在超过阈值时立即结束程序。常见错误包括未及时终止导致错误输出，以及int类型溢出问题。数据规模保证n≤50，a≤100。]]></description><category></category></item><item><title><![CDATA[数字黑洞-洛谷B3866 [GESP202309 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150454434</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150454434</guid><author>hl026</author><pubDate>Mon, 18 Aug 2025 12:00:00 +0800</pubDate><description><![CDATA[摘要：本文介绍了一个数学变换过程，即任意三位数（各位数字不同）通过重复进行&quot;最大排列数减最小排列数&quot;操作，最终必定会得到495（数字黑洞）。给出了具体实现步骤：1）拆分数字各位；2）排序重组为最大和最小三位数；3）计算差值；4）统计变换次数直至得到495。提供了两种C++实现方案：使用条件判断排序和使用sort函数排序，核心都是通过循环完成变换过程并计数。该问题考察了数字处理、排序算法和循环控制等编程基础能力。]]></description><category></category></item><item><title><![CDATA[自幂数判断（详解与多种实现方法）-洛谷B3841 [GESP202306 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150451897</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150451897</guid><author>hl026</author><pubDate>Mon, 18 Aug 2025 07:30:00 +0800</pubDate><description><![CDATA[本文介绍了判断自幂数的多种方法。自幂数指一个N位数满足各位数字的N次方和等于自身。针对输入的正整数，需先计算其位数N，再求各位数字的N次方和进行判断。文中指出直接使用pow函数可能导致整数计算错误，建议使用round函数或自定义整数幂函数。提供了四种实现方案：基础实现、函数封装、自定义幂函数和预处理幂次法，其中预处理法通过预先计算0-9的N次方来优化性能。最后还介绍了字符串处理法，将数字转为字符串便于操作。这些方法各有特点，可根据需求选择适合的实现方式。]]></description><category></category></item><item><title><![CDATA[找素数-洛谷B3840 [GESP202306 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150451218</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150451218</guid><author>hl026</author><pubDate>Sun, 17 Aug 2025 11:30:00 +0800</pubDate><description><![CDATA[题目要求计算区间[A,B]内的素数个数。摘要：本题考察素数判断方法，通过遍历区间内每个数x，判断其是否为素数（只能被1和自身整除）。对于小数据规模（B≤1000），可采用暴力枚举法（检查2到x-1是否存在因子）。优化方法包括：1）仅检查到sqrt(x)即可；2）使用break提前终止循环。最终统计满足条件的数个数输出即可。样例输入2-10输出4（素数2,3,5,7）。]]></description><category></category></item><item><title><![CDATA[勾股数-洛谷B3845 [GESP样题 二级]]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150450677</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150450677</guid><author>hl026</author><pubDate>Sun, 17 Aug 2025 08:00:00 +0800</pubDate><description><![CDATA[本文介绍了如何编程计算在给定正整数n范围内满足条件的勾股数组数。勾股数是指满足a²+b²=c²且1≤a≤b≤c≤n的三个正整数。解题提供了两种方法：暴力枚举法（三层循环遍历所有可能组合）和优化枚举法（利用数学关系减少循环层数）。重点强调了优化思路的重要性，包括限制循环范围避免重复计算、使用平方根函数简化计算等。通过分析样例和代码实现，帮助理解如何将数学问题转化为高效的程序解决方案。]]></description><category></category></item><item><title><![CDATA[小杨的H字矩阵-洛谷B3924 [GESP202312 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150449687</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150449687</guid><author>hl026</author><pubDate>Sat, 16 Aug 2025 19:02:04 +0800</pubDate><description><![CDATA[本文介绍了构造N×N（N为奇数）H字矩阵的方法。矩阵特征为：最左/右列为'|'，中间行第2~N-1个字符为'-'，其余为'a'。解题思路借鉴了X矩阵的坐标法，通过条件分解：先判断列边界（j=1或j=N），再处理中间行（i=(N+1)/2），最后填充默认字符'a'。文中给出了C++实现代码，并对比了X矩阵与H矩阵的差异，提出可扩展应用于T字、十字等矩阵图形。总结出通过行列号定位、分层判断的方法论，适用于各类规则矩阵构造问题。]]></description><category></category></item><item><title><![CDATA[小杨的 X 字矩阵（举一反三）-洛谷B3865 [GESP202309 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150448312</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150448312</guid><author>hl026</author><pubDate>Sat, 16 Aug 2025 17:18:30 +0800</pubDate><description><![CDATA[摘要：本题要求构造一个X字形矩阵，奇数阶矩阵的两条对角线为&quot;+&quot;，其余为&quot;-&quot;。通过观察5x5矩阵示例，发现规律：主对角线满足i=j，副对角线满足i+j=n+1。解题步骤包括：1）输入奇数n；2）双重循环遍历矩阵；3）判断每个位置是否在对角线上；4）按要求输出字符并控制换行。核心代码使用if(i==j||i+j==n+1)判断&quot;+&quot;&quot;-&quot;位置。文章还列举了Z字形、空心矩形等类似问题的变形解法，并提醒注意边界条件和输出格式。]]></description><category></category></item><item><title><![CDATA[百鸡问题-洛谷B3836 [GESP202303 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150444867</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150444867</guid><author>hl026</author><pubDate>Sat, 16 Aug 2025 15:33:21 +0800</pubDate><description><![CDATA[本文介绍了&quot;百鸡问题&quot;的编程解法及其优化过程。该问题要求在给定公鸡、母鸡、小鸡价格和总钱数、总鸡数的条件下，计算可行的购买方案数量。文章首先给出暴力枚举的三重循环解法，然后逐步优化：通过缩小循环范围减少枚举次数，使用clock()函数测量运行时间，最终通过减少循环层数实现显著性能提升。核心优化思路是：1)优化循环次数范围；2)减少嵌套循环层数。文章最后给出通用解法代码，适用于任意输入参数情况，并强调在编程竞赛中优化枚举算法的重要性。]]></description><category></category></item><item><title><![CDATA[画三角形-洛谷B3837 [GESP202303 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150444124</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150444124</guid><author>hl026</author><pubDate>Sat, 16 Aug 2025 12:40:21 +0800</pubDate><description><![CDATA[摘要：题目要求用大写字母A-Z循环输出n行三角形图案，每行字母数与行号相同。使用双重循环控制行列输出，内层循环输出当前行字母，外层控制换行。通过取模运算实现Z到A的循环。代码用变量current记录字母偏移量，每次输出后自增，对26取模保证字母循环。时间复杂度O(n²)，空间复杂度O(1)。]]></description><category></category></item><item><title><![CDATA[画正方形-洛谷B3844 [GESP样题 二级] ]]></title><link>https://blog.youkuaiyun.com/hl026/article/details/150442959</link><guid>https://blog.youkuaiyun.com/hl026/article/details/150442959</guid><author>hl026</author><pubDate>Sat, 16 Aug 2025 11:56:02 +0800</pubDate><description><![CDATA[2）每一行的每列字母分别是从改行首字母开始，依次递增，如果列号j从0开始，到n-1列，则每一列的字母应该为行首字母('A'+I)+列号j的转换，也即char('A'+(i+j)%26),同理，考虑到字母溢出，所以这里需要同26求模；特别的，规定大写字母 Z 的下一个字母为大写字母 A。1）每一行的行首字母分别是'A' ,'B', 'C' ...'Z' ,'A', ' B', 'C...'Z'，如果行号i从0开始，到n-1行，则每一行的行首字母应该为char('A'+i%26），考虑到字母溢出情况；]]></description><category></category></item></channel></rss>