- 博客(6)
- 收藏
- 关注
原创 《算法竞赛入门经典第二版》p39 开灯问题
本文介绍了开灯问题的算法解法。问题描述:n盏灯初始关闭,n个人依次操作灯的开关(第i个人改变所有i倍数的灯的状态),求最终亮着的灯。解决方案使用一维数组存储灯的状态,通过双重循环模拟操作过程,利用非运算符(!)切换状态。文章重点讲解了memset函数快速清零数组的技巧,以及输出格式控制方法(通过first变量避免首尾多余空格)。该问题虽然算法简单,但涉及数组操作、状态切换和严谨的输出控制等编程基础,对算法竞赛入门者具有很好的练习价值。
2025-07-13 22:08:11
444
原创 蓝桥杯每日一题:1259(奇怪的捐赠)
本文讲解蓝桥杯题目"奇怪的捐赠"的解题思路。题目要求将100万元分成若干份,每份为7的幂次方且不超过5份。核心解法是将100万转换为七进制数(11333311),然后将各数位相加(1+1+3+3+3+3+1+1=16)即为最多可分份数。文章详细介绍了十进制转七进制的方法:反复除以7取余数,最后倒序排列。代码实现简单,只需循环取余求和即可。作者强调进制转换是重要解题工具,后续会结合贪心算法等更复杂题型讲解。
2025-07-11 22:56:21
1245
原创 蓝桥杯每日一题:19718(回文字符串)
本文摘要: 这是一篇蓝桥杯省赛真题解析,题目要求判断给定字符串能否通过在开头添加特定字符(l,q,b)变成回文串。解题思路分为以下步骤: 找出字符串中非l/q/b字符的边界位置 判断边界内的字符串是否为回文 检查边界外的字符是否可以通过开头添加形成对称 综合判断两种情况的结果 文章详细讲解了算法实现过程,包括特殊情况的处理、内外边界判断逻辑,并提供了完整C语言代码。作者还分享了学习心得,强调算法需要循序渐进地理解。该解析适合备战蓝桥杯的考生参考学习。
2025-07-10 23:13:01
1791
原创 蓝桥杯真题每日一道(班级活动)
摘要: 题目要求将n名同学(n为偶数)分组,每组两人,且每组的ID相同。通过修改最少数量的ID,使得每个ID恰好出现两次。核心思路包括:1)统计每个ID的出现次数;2)分类为冗余ID(次数>2)和单生ID(次数=1);3)计算最小修改次数:若冗余次数≥单生次数,直接使用冗余填补;否则,剩余单生两两配对修改。示例输入为[1,2,2,3],输出1,表示只需修改1个ID即可满足条件。代码使用数组哈希统计次数,并通过分类计算得出结果。
2025-07-09 23:19:07
297
原创 子串替换(C语言版)
本文介绍了使用暴力法实现字符串子串替换的算法。主要内容包括:1)读取主串、查找子串和替换子串,并去除换行符;2)设计查找函数,通过双重循环在主串中定位目标子串;3)实现处理函数,先删除找到的子串,再插入替换内容;4)动态调整主串长度并重复查找替换流程。该方法避免了指针操作,适合初学者理解字符串处理的基本原理。后续将更新使用库函数实现的版本。
2025-06-16 22:09:46
373
1
原创 根据字符串大小,对字符串进行排序
本文介绍了C语言中如何比较和排序多个字符串。字符串比较基于字典序,通过逐个字符的ASCII码值判断大小,可以使用<string.h>中的strcmp()函数来比较。对于多个字符串排序,采用冒泡排序思想,通过创建临时数组和strcpy()函数实现字符串位置的交换。文末提供了一个实例代码,演示如何对输入的三个字符串进行从小到大排序。
2025-06-07 12:43:17
832
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅