- 博客(7)
- 收藏
- 关注
原创 蓝桥杯真题——挖矿
小蓝正在数轴上挖矿,数轴上一共有 n 个矿洞,第 i 个矿洞的坐标为 ai。小蓝从 0 出发,每次可以向左或向右移动 1 的距离,当路过一个矿洞时,就会进行挖矿作业,获得 1 单位矿石,但一个矿洞不能被多次挖掘。路径:0→−1→0→1→2,可以对 0,−1,1,2 四个矿洞挖掘并获得最多 4 块矿石。对于所有评测用例,1≤n≤105,−106≤ai≤106,1≤m≤2×106。第二行包含 n 个整数 a1,a2,⋯,an,相邻整数之间使用一个空格分隔。对于 20% 的评测用例,1≤n≤103;
2025-04-22 11:55:38
397
原创 理解前缀和
前缀和的概念前缀和是一种用于快速计算数组或序列中某一段区间和的技术。通过预处理,将数组的前n项和存储起来,可以在常数时间内快速得到任意区间的和。前缀和的定义对于一个数组arr,其前缀和数组prefixSum定义为:prefixSum[i]表示arr中从第0个元素到第i个元素(包含)的和。即:prefixSum[i] = arr[0] + arr[1] + ... + arr[i]前缀和的计算前缀和数组可以通过一次遍历原数组得到,时间复杂度为O(n)。
2025-04-22 11:40:23
401
原创 C语言练习题(持续更新中...)
算法(Algorithm)是计算机科学和数学中的核心概念,指为解决特定问题而设计的一系列明确、有限的计算步骤或规则。它如同“食谱”,通过明确的步骤指导计算机完成复杂任务。以下是算法的主要作用和功能,结合案例和类比进行说明:1. 问题求解作用:将复杂问题分解为可执行的步骤,提供系统性解决方案。功能:路径规划:如导航软件(Google Maps)使用Dijkstra或A*算法,计算从A点到B点的最短路径。数学计算:如求解方程、优化问题(线性规划、动态规划)。
2025-04-09 15:35:07
945
4
原创 用C语言实现链表的增删改查
链表是编程中非常基础且重要的结构,它不像数组那样需要连续的内存空间,而是通过指针将节点动态地连接起来。这种灵活性让链表在插入、删除等操作中表现得非常高效。今天我们要深入探讨一个经典的数据结构——下面是完整的C语言代码,我们会一步步解析每个部分。链表的最后一个节点的指针域为。
2025-03-28 21:52:24
254
原创 C语言中的各种格式说明符
算法(Algorithm)是计算机科学和数学中的核心概念,指为解决特定问题而设计的一系列明确、有限的计算步骤或规则。它如同“食谱”,通过明确的步骤指导计算机完成复杂任务。以下是算法的主要作用和功能,结合案例和类比进行说明:1. 问题求解作用:将复杂问题分解为可执行的步骤,提供系统性解决方案。功能:路径规划:如导航软件(Google Maps)使用Dijkstra或A*算法,计算从A点到B点的最短路径。数学计算:如求解方程、优化问题(线性规划、动态规划)。
2025-03-27 22:13:01
349
原创 蓝桥杯历届试题-九宫重排
如下图的九宫格中,放着 1 ~ 8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成图 2 所示的局面。题目的任务是已知九宫的初态和终态,求最少经过多少步的移动可以到达。如果无论多少步都无法到达,则输出 -1。显然是按从上到下,从左到右的顺序记录数字,空格记为句点。输入第一行包含九宫的初态,第二行包含九宫的终态。输出最少的步数,如果不存在方案,则输出 -1。我们把上图的局面记为:12345678.把下图的局面记为:123.46758。
2024-10-24 13:01:47
498
2
原创 蓝桥杯——快速幂
快速幂算法:假设要计算a的b次方,a和b均为正整数 若使用常规的累乘法,时间复杂度将达到O(b)数量级,当b很大时极易运行超时;使用基于二分指数的快速幂算法可以大大提高计算速度,缩短计算时间。快速幂的核心算法:(快速幂算法可以使指数按log2的速度递减,从而提高计算速度)若当前指数为偶数,则指数减半(二分指数),底数取平方,即计算(a*a)的(b/2)次方,若当前指数是奇数,则指数减1,变为偶数,外成a,改为计算a*(a的b-1次方),如此循环。
2024-10-15 17:42:14
328
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅