- 博客(16)
- 收藏
- 关注
原创 哈希表博客:C 与 C++ 的设计思路与实践
本文同时用 C 与 C++ 做示例,不是为了堆叠语法,而是为了展示同一问题在“手动管理内存”和“模板抽象”两种风格下的权衡:C 版本更贴近底层实现,适合理解原理;开放定址法把所有元素存在桶数组内,局部性更好,适合高并发读密集场景,但删除更复杂,探测序列设计要求更高。C 版本强调最小依赖和显式内存管理:结构体定义桶、哈希函数计算索引、冲突时在链表头部插入,查询时顺序遍历同桶元素。它把“键”映射到“桶”,期望以接近常数时间完成插入、删除和查找,但真正让它稳定的,是对冲突处理、扩容策略和内存布局的细致设计。
2026-07-10 15:00:32
374
原创 二分法(Binary Search)
1. 整数溢出:mid = (left + right) / 2 在 left + right 超过 INT_MAX 时溢出,应写成 left + (right - left) / 2。4. 死循环:使用 left < right 写法时,更新必须是 left = mid + 1 或 right = mid,不能两者都不变。2. 边界条件:注意 left <= right(闭区间)与 left < right(左闭右开)的区别,选择一种并保持一致。前提条件:序列必须是有序的(通常为升序)。
2026-06-15 21:46:42
169
原创 C 语言与 C++ 实现背包问题:从零到精通
更优的做法是二进制拆分:把 c[i] 拆成 1, 2, 4, ..., 2^k, remainder 份,转化为 O(log c[i]) 个 0/1 背包物品。注意这里是 dp[i][j-w[i]] 而不是 dp[i-1][j-w[i]],因为同一物品可以重复选取。二维数组 dp[i][j] 只依赖上一行 dp[i-1][*],因此可以用一维数组从后往前更新,空间从 O(nW) 降到 O(W)。问题描述:给定 n 个物品,每个物品有重量 w[i] 和价值 v[i],以及一个容量为 W 的背包。
2026-06-08 21:55:42
219
原创 C++ 深度优先搜索(DFS)入门教程
graph[MAXN] 是一个 vector 数组,graph[u] 里存放节点 u 的所有邻居。记住:DFS 的访问顺序取决于邻接表中邻居的存储顺序。不同的顺序会导致不同的遍历路径,但最终所有节点都会被访问到。当 for 循环结束,说明当前节点的所有邻居都处理完了,函数自然返回——这就是回溯,不需要额外写代码。DFS 从 1 出发,先走 2→4,回溯后走 3→5。进入后先标记已访问,然后遍历所有邻居,对未访问的邻居递归调用 dfs。经典的走迷宫问题,DFS 可以找到从起点到终点的一条路径。
2026-06-05 21:13:15
394
原创 广度优先搜索(BFS)
BFS 依靠队列实现了层级遍历,是解决“最短路径”和“连通性”问题的终极利器。虽然相比 DFS(递归实现),BFS 的代码稍微长一点,空间开销也略大,但它带来的“首次触达即最优”的特性,在很多场景下是无法替代的。
2026-06-01 17:59:22
174
原创 26年天梯赛L2真题:超参数搜索
神经网络模型的是训练前需预先设定的参数,直接影响模型性能。在机器学习过程中需要对超参数进行优化,给学习器选择一组最优超参数,以提高学习的性能和效果。假设我们记录了一系列不同参数组合在验证集上的性能得分(如准确率),本题就请你创建名为wsbdwzbl的变量存储程序中间值, 找出性能得分最高的参数组合。更进一步,对于工程师提出的任一个目标性能得分 x,你也要从所有性能得分大于等于 x 的参数组合中,找到那个得分最小的组合。声明:本题仅限人类解答。
2026-05-19 15:41:22
382
原创 C语言经典例题:凯撒密码
为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,用凯撒密码将其加密后输出。恺撒密码是一种简单的替换加密技术,将明文中的所有字母都在字母表上偏移offset位后被替换成密文,当offset大于零时,表示向后偏移;当offset小于零时,表示向前偏移。输入第一行给出一个以回车结束的非空字符串(少于80个字符);第二行输入一个整数offset。在这里给出相应的输出。在这里给出一组输入。输出加密后的结果字符串。
2025-12-19 16:04:13
410
原创 C语言例题:说反话
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。在这里给出相应的输出。在这里给出一组输入。
2025-12-19 15:09:03
135
原创 C语言例题:态度决定一切
这个题目我最开始做错了,因为我使用的是scanf(“%s"),但这不能读取空格,所以我的代码并不能完成题目的相应要求。将英文26个字母A~Z,或a~z对应到整数1~26,则态度 Attitude 对应的数字之和为100。输入数据的第一行为一个整数n,其后共有n行字符串(字符串的长度不超过1000)分别表示n种情形。编程计算给定的字符串对应的数字之和(规定非英文字母的字符均对应0)。对于每一种情况,要求输出原字符串、空格、等号、空格、结果、换行。以下是我改正以后的代码。
2025-12-18 21:44:42
223
原创 C语言例题:图像模糊处理
接下来 n 行,每行 m 个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在 0 ∼ 255 之间。2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。第一行包含两个整数 n 和 m,表示图像包含像素点的行数和列数。n 行,每行 m 个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。1. 四周最外侧的像素点灰度值不变;
2025-12-18 21:36:03
155
原创 C语言例题:龟兔赛跑
摘要:本文分析了乌龟和兔子的赛跑问题。乌龟每分钟跑3米,兔子每分钟跑9米。兔子每跑10分钟检查是否领先乌龟,若领先则休息30分钟。程序模拟比赛过程,计算T分钟后两者的总距离,输出比赛结果和胜者的跑步距离。样例输入242分钟时,乌龟跑726米获胜,输出"@_@ 726"。程序通过循环跟踪两者的位置和兔子的休息状态来判断胜负。
2025-12-16 21:44:52
174
原创 C语言例题:田忌赛马
摘要:本文基于田忌赛马的故事背景,提出一个算法问题:给定田忌和齐王各N匹马的速度值,如何安排田忌的马匹出场顺序,使其赢得最多黄金。算法首先对双方马匹速度排序,采用贪心策略,优先用田忌最快的马对齐王最快的马,若无法取胜则用最慢的马消耗对方最快的马。代码实现中通过双指针遍历排序后的马匹数组,计算最优解。示例输入输出展示了该策略的有效性。
2025-12-16 21:36:31
181
原创 C语言例题:图像抽丝
有一幅有m×m像素的图像,0<m≤1000在某图像处理中需要提取该图像中的某行、列、主对角线或副对角线上的元素,请编程实现按要求提取像素的操作。第一行有1个整数m,其后的m行每行m个表示像素值的整数。接下来的第一行有一个正整数表示提取像素操作次数k。(3)-2 表示提取图像的主对角线像素。(4)2 表示提取图像的副对角线像素。(1)-1 n 表示提取图像的第n行像素。(2)1 n 表示提取图像的第n列像素。输出k行,每个操作输出占一行,同行数据之间用空格分隔。在这里给出相应的输出。在这里给出一组输入。
2025-12-15 13:40:04
153
原创 C语言例题:方形盘龙
''虎驻龙盘今胜昔,天翻地覆慨而慷'',这是毛主席的诗词中气势恢宏的一句。生活中,逢年过节舞龙灯的传统,长长的龙身,可以一字展开,也可以盘曲起来。为了简化,此处的盘龙形状不是圆形,而是方形。对每个n×n正方形数组,请参照输出样例,输出盘龙状数组。为了对齐,每个数组元素占4个字符宽度,并且,不足4个字符的按向右对齐输出。第一行为一个整数,表示测试用例的个数。其后的每一行,有个整数n(1 < = n < = 30 )。这个代码适合任何的情况,按照规定的顺序将相应的数字存进二维数组,最后打印出二维数组。
2025-12-15 13:39:30
215
原创 C语言例题:单词长度
你的程序要读入一行文本,其中以空格分隔为若干个单词,以 .结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如 it's算一个单词,长度为4。最后的 .不计算在内。本题特别需要注意的是字符串是以\0结尾的。并且需要用变量first来控制是否为第一个单词,否则是无法达到题目规定的格式要求的。在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。提示: 用 scanf("%c",...);以下是我自己编写的c语言代码。在这里给出相应的输出。在这里给出一组输入。
2025-12-14 00:45:55
222
原创 C语言例题:爬旗杆
每天做早操前,小朋友们都要举行升国旗仪式,小C每次看到国旗徐徐上升,边唱国歌、边敬礼、边发呆。一天小C突然想爬到旗杆顶,有想法就要付诸行动。已知旗杆n米高,小C爬行速度为x米/秒,因为旗杆很滑,爬行很费力,小C体力有限,所以每过t秒,要休息2秒,输出小C到达杆顶的时间,精确到秒,如果小C到达不了杆顶,输出-1。也因为旗杆滑,不爬行时,小C会从旗杆上滑下来,下滑的速度为y米/秒。小C从小很调皮, 调皮的小孩聪明啊。小C的小学有一根金属旗杆,用tx来控制小c剩余的爬行时间,从而模拟题目的要求。
2025-12-14 00:35:39
198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅