自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 湘大oj-数码积性练习笔记

本文探讨了优化数码和问题的算法解决方案。原代码因对每个数单独分解因子导致时间超限,通过以下优化实现高效处理:1)预处理数码和数组避免重复计算;2)采用埃式筛法思想遍历所有可能的乘积组合;3)利用前缀和快速响应区间查询。优化后算法将时间复杂度从O(n^2)降至O(n log n),成功解决了大规模数据下的效率问题,并通过预处理和数学对称性显著提升了性能。最终方案展示了算法优化中预处理、数学特性和数据结构选择的重要性。

2025-12-10 19:27:12 323

原创 湘大头歌程-Ride to Office练习笔记

Charley骑车从起点到终点(4500米)需要有人陪伴骑行,遇到更快者会加速跟上。输入给出同行者的速度v和出发时间t,要求计算Charley到达终点的最短时间(小数向上取整)。关键思路是Charley最终会与最快到达终点的人同时到达。解题时忽略提前出发者,对每个同行者计算其到达时间t + ceil(4.5/v*3600),取最小值作为答案。代码使用limits.h初始化最小值和math.h的ceil函数处理取整。后文详细介绍了limits.h的常量定义和math.h的四种取整函数的功能与区别

2025-11-29 11:25:28 833

原创 湘大oj-回文串问题练习

因为只能在末尾添加字符,所以原字符串的前面部分必须与末尾部分对称。(极端情况是原字符串完全不回文,需要补几乎整个逆序串)。我们要在末尾添加一些字符,使整个字符串变成回文串。,我们只需要补上前面不匹配的部分的逆序。那么,最终的回文串长度至少是。需要添加的字符数就是。需要逆序补到末尾)。

2025-10-22 20:52:19 261

原创 Leetcode94.二叉数的中序遍历练习

新手练习Leetcode94.二叉树的中序遍历题,总结自己刷题时的思路与错误点,分析递归与迭代两种解法,提供最后AC代码

2025-09-24 23:09:46 487

原创 LeetCode118.杨辉三角练习

在数组下标和个数问题上混乱,忽略了sum[i-1]=add(sum[i-2],i);这一行代码中出现的i-2会出现越界问题,即i=1时,i-2=-1,错误;不要多次修改下标和代表个数的变量,出现下标和个数含义的变量时,可进行注释,避免后续逻辑混乱,出现计数不正确,数组越界问题;题目上面有要求返回杨辉三角二维数组的同时,也要正确地设置了。,符合函数的签名要求。

2025-09-21 20:40:04 587

原创 湘大oj-聚会练习

逻辑错误,没有考虑到先从要求小的朋友入手,应该先排序,再遍历;

2025-09-16 23:16:03 354

原创 LeetCode-14.最长公共前缀练习

的内存会被释放,返回一个指向已经被释放的内存的指针,这是未定义行为。即使不考虑内存问题,这种拷贝操作在每次调用时都会重新分配和释放内存,效率较低。的地址,这是不安全的。局部变量在函数返回后会被释放,返回的指针指向的内存是无效的。

2025-09-13 22:49:21 937

原创 湘大oj-加一练习

原本的思路是找最小值,将最小值一一往上加,但这样的算法太费时,换一种思路(差分):寻找数列中各段的“最大值”和“最大差值”,即从前往后看,若出现比前面数值小的值,则记录下来;若出现比前一个记录值更大的值,则记录两个数值的差值(操作数累加)和目前最大值(此时的差值因为前面的记录规则,为阶段性的最大差值,即前面所有小的数值均可变为目前的最大值,此时所有数可看作一个数);后续重复前面的操作,可更新记录各阶段的最大值,第二大值,第三大值......最终累加各“大值”间的“最大差值”,即为总操作数。

2025-09-10 21:35:36 551

原创 湘大oj-最小化

把首位化为最小情况(即1)的顺序与后面数码转化成更小数(即0)的顺序搞混,逻辑上忽略了数码‘1’出现在非首位,但可以操作的情况。

2025-09-09 20:27:30 572

原创 湘大oj-Euler‘s Totient Function练习

核心问题是求每个整数对应的欧拉函数值,不必要把所有素数求出来,最重要的是求素数因子;求和问题可以用前缀和策略优化时间效率;

2025-09-04 18:26:12 210

原创 湘大oj-哈希练习

在主函数中寻找最小满足条件的素数的循环次数过多(不论是否是素数均进入循环判断),导致时间超限,可以先将可能的素数找出来,再去寻找最小满足条件的素数。

2025-09-04 12:50:48 447

原创 湘大Oj-Min Base II练习

1.对进制数较大时,可能产生越界的情况;观察发现,一般进制小于100时即可找到满足条件的进制;2.pd函数中循环上限有问题,数组表示的是每个数码出现的次数,所以下标范围应为0~99;3.主函数中每次循环时num数组与max的值未重置,导致结果偏差;

2025-09-02 13:04:38 378

原创 湘大oj-连接字符串练习

k值的改变与i有关,即小于等于len1-1,当b,c字符串无重合的子串时,按连接字符串相关代码逻辑看,k应该为len1,而原先代码中k的取值不会等于len1,(即使初始化k=len1,但经过循环k就会一直小于len1)2.原本的逻辑是从前往后遍历找到满足对应尾部和头部相同的第一个字符,但忽略了循环中的第一个条件判断会影响k的值会停留在上一个存储的值,而不是随着下标的值变化而变化,应该将。1.要输出的是最短的连接字符串,应该先判断长度再判断字典序(strcmp是以依次比较两个字符串的字符大小来决定结果);

2025-08-29 12:14:24 307

原创 湘大oj-共同的子串练习

注意点:去重时循环结束不用再i++,循环内已经用i=j改变i的值了,否则会漏掉部分子串,结果偏小。‑ 标记重复:5050² ≈ 25×10⁶ 次 strcmp。‑ 统计公共:5050² ≈ 25×10⁶ 次 strcmp。用qsort函数将子串排序并去除。,T=100 时就是。

2025-08-26 16:07:56 330

原创 湘大oj-密码练习

原本想用二维数组表示明文字符与密文字符间的对应关系,但忽略了对应关系的前提是1VS1,导致逻辑混乱。分别用一维数组表示明文,密文出现的字符,及对应的关系。

2025-08-26 14:07:33 230

原创 湘大OJ-字符频度练习

1.为便于理解,这里以字符串aaabbbbccccdddd为例,a出现了3次,b,c,d出现了4次,3次出现了1次(即3次的频度为1),4次出现了3次(即4次的频度为3);边界:长度为1000,且为一种字符的字符串,字符次数为1000),所以j<=max就可能导致最终找不到。我原本代码中max表示的是次数出现次数(次数频度)的最大值【上例中max=3】;2.侧重点偏于检查次数,次数频度之间的逻辑关系,忽略了输出时次数数组下标应转换为字符型;,即当j=3时,循环结束,但次数频度最大时对应的次数本身为4。

2025-08-25 21:21:10 366

原创 LeetCode-第三题无重复字符的最长字串练习

把正确的子字符串长度用两个重复字符间的距离代替,但原字符串可能不出现重复字符,逻辑有问题,且在改变左边窗口时,直接将其变到右边窗口位置,而不是把窗口左端逐渐右移,丢失了可能更长的合法子串,导致结果偏小,如下图。

2025-08-24 16:45:19 152

原创 LeetCode-第二题两数相加练习笔记

链表对应语法掌握不熟练,理解不透彻,解题逻辑有问题。

2025-08-24 15:35:37 341

原创 湘大oj-字母序列

原先是把每次循环分解成若干次向左或向右移一步,可以直接采用。全程数组下标从 0 开始,杜绝越界。,直接读一个处理一个;表示,避免方向错误;

2025-08-23 18:33:51 313

原创 湘大oj-String练习

原本想利用不在字符集里的字符前后的距离计算好字串的长度,但忽略不在字符集里的字符可能仅出现一个的情况。把窗口滑动的起始点,结尾点改成在字符集里的字符对应的位置。

2025-08-23 14:59:38 138

原创 湘大oj-分段练习

关键点:前者是在进入循环后判断是否是总和因子,后者是判断为总和因子后再进入循环,枚举次数显著减少。1.因子分解逻辑错误,本意想枚举总和sa的所有因子,忽略后面改变sa后会直接忽略其他因子。分析:进入循环的x量过大,可将总和因子单独求出,用数组存储,再进入验证,可将时间效率提高。2.没有考虑到原代码所求“段和”是否真正成立,即忽略验证步骤的代码,是否可以被划分为和为 5 的两段(实际也不行)。小注意点(最开始的段错误):在输入数组元素时忽略了。,总和是 10,最大元素是 4。

2025-08-23 13:50:38 311

原创 湘大oj-完全平方数II练习

—>b^2-4*c绝对值的最小值应大于(n0_min)^2-(n0_min-1)^2,即(b+2)^2-(b+1)^2,整理为2*b+3。——>b^2-4*c为两个完全平方数之差,根据正负可推出n0的可能值,即可推出x的可能值。b^2-4*c为10^8级别,其对应平方数可能有2*10^4个,乘2是因为有正负之分。1.b^2-4*c为0时,两个完全平方数相等,即n0=2*i。b^2-4*c确定,相邻完全平方数之差均为奇数,且差值递增,——>Ib^2-4*cI<2*b+3时,x无解。对应代码编写逻辑不清晰。

2025-08-22 19:04:30 455

原创 湘大oj-不定方程的正整数解练习

问题:答案错误。

2025-08-17 16:45:23 264

原创 湘大oj-素数练习

问题:答案错误。

2025-08-16 18:57:59 166

原创 湘大oj-Flawless Prime练习笔记

问题:答案错误。

2025-08-16 18:21:13 238

原创 湘大oj-1121欧拉函数练习笔记

2.用while(a%i==0)a/=i;来把其中一个质因子“去除”,避免干扰后面寻找其他质因子。(刚开始意识到是内存问题,但不完全理解,反思问题方向及解决方案出现偏差)精妙处:1.用i<=a/i来判断最后一个质因子,进而结束第一个寻找循环;当“总内存限额”更严时,减少算法本身占用的内存才是正道。2.找到关键问题(内存限制要求较严)总内存=堆 + 全局 + 代码段。“堆”只是解决“栈太小”的问题;手动申请,运行期再释放即可。2.常见段错误筛查表格。

2025-08-16 12:15:17 383

原创 基础DOS命令

适合新手了解的dos基础命令

2025-07-10 10:38:44 260

原创 电脑常用快捷键

新手上手电脑常用快捷键

2025-07-10 09:15:02 254

原创 零基础了解Markdown基础语法

零基础了解Markdown基础语法

2025-07-05 11:19:40 458

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除