Contest1886 - 2025-2026-1学期《C语言程序设计》:数组应用(二维数组、字符串、自定义排序)【25计算机】

实验目标:掌握二维数组、字符串的核心操作,理解自定义排序的实现逻辑,培养算法设计与优化思维,能够运用相关知识解决各类编程问题,提升代码编写与问题拆解能力。

一、核心知识点

  1. 二维数组:二维数组的定义、遍历、下标定位,以及在矩阵、方阵、三角结构中的存储与运算,是处理矩阵乘法、螺旋矩阵、杨辉三角等问题的基础。
  2. 字符串:字符串的输入输出、遍历与字符筛选,结合条件判断实现对字符特征的提取与处理,适用于手机靓号、国王的魔镜等字符串类问题。
  3. 自定义排序:基于比较规则的排序逻辑设计,如绝对值排序的自定义比较条件,通过修改排序算法的核心判断部分实现特殊需求的排序功能。
  4. 算法设计及优化:模拟算法的场景还原、递推算法的规律应用、去重与筛选的效率优化,以及通过边界条件处理减少冗余运算,提升代码执行效率。

二、按知识点分类

  1. 数组类
    题目:连续和、最长平台、求矩阵两对角线上的元素之和、螺旋矩阵、回形方阵、杨辉三角、做幻方
    说明:此类题目核心考查二维数组的操作,涵盖一维数组向二维数组的过渡(连续和、最长平台)、矩阵的数学运算(矩阵向量乘法、对角线求和)、复杂方阵的构造与遍历(螺旋矩阵、回形方阵),以及基于二维数组的递推规律(杨辉三角、幻方)。
  2. 字符串类
    题目:手机靓号、国王的魔镜 庖丁解牛
    说明:这类问题以字符串为处理对象,需要通过字符遍历、筛选与逻辑判断,提取符合要求的字符特征(如手机靓号的数字规律),或分析字符串的结构特点(如国王的魔镜的字符串反转 / 重复规律)。
  3. 自定义排序类
    题目:绝对值排序
    说明:该题目是自定义排序的典型应用,需突破常规的升序 / 降序排序逻辑,设计基于绝对值大小的比较规则,实现对数组元素的特殊排序,重点考查排序算法的灵活改造能力。
  4. 算法设计及优化类
    题目:明明的随机数、连续和、扫雷
    说明:明明的随机数需设计去重算法并优化效率;庖丁解牛需要拆解问题并设计递推或模拟算法;扫雷则需通过模拟场景设计雷区标记与周边计数的算法,同时需考虑边界条件优化与冗余运算的减少,全面考查算法设计与优化思维。

三、解题思路

  1. 二维数组类:先明确二维数组的行列边界,通过双层循环实现遍历;对于矩阵运算,按数学公式定位行列下标进行数值计算;对于螺旋矩阵、回形方阵等复杂结构,定义边界变量(上 / 下 / 左 / 右),结合方向控制逐步填充或遍历数组,利用递推规律(如杨辉三角的上一行推导下一行)简化计算。
  2. 字符串类:将字符串按字符逐个遍历,通过if条件判断筛选符合要求的字符(如手机靓号的连续相同数字);对于字符串结构分析问题(国王的魔镜),可通过字符串反转、截取等操作验证规律,结合循环实现场景模拟。
  3. 自定义排序类:以冒泡排序、选择排序等基础排序算法为框架,修改核心的比较条件 —— 将原有的 “直接比较数值大小” 改为 “比较数值的绝对值大小”,通过多轮遍历与交换,实现按绝对值排序的需求。
  4. 算法设计及优化类:明明的随机数可利用数组标记法实现高效去重(以数值为下标,标记出现状态),避免嵌套循环的高时间复杂度;扫雷问题先通过二维数组存储雷区位置,再遍历每个位置统计周边雷数,通过边界判断避免越界;庖丁解牛需先拆解问题为数学规律,再设计递归或循环算法实现,同时通过剪枝减少不必要的计算。
实验要求:每人至少完成 3 类不同知识点的题目,提交代码时添加关键步骤注释;针对算法设计类题目,分析不同实现方案的效率差异,撰写 50 字左右的优化思路,加深对算法设计与优化的理解。


Start Time: 2025-11-25 08:00:00 End Time: 2025-12-10 23:59:00
Current Time: 2025-12-08 02:36:21 Status:Running   Public
[Status] [Standing] [Statistics]
Problem ID Title 分类 AC Submit 正确率
Problem  A 手机靓号 字符串模拟 45 80
56%
Problem  B 连续和 数学递推动态规划二分 33 75
44%
Problem  C 最长平台 模拟贪心动态规划 35 49
71%
Problem  D 茵茵的第一课 字符串 41 52
78%
Problem  E 【绝对值排序】 STL数学排序 29 37
78%
Problem  F 明明的随机数 去重排序 23 35
65%
Problem  G 庖丁解牛 字符串模拟 22 61
36%
Problem  H 求矩阵两对角线上的元素之和 二维数组数学 25 41
60%
Problem  I 螺旋矩阵 模拟 12 36
33%
Problem  J 回形方阵 模拟 7 59
11%
Problem  K 习题6-6 杨辉三角 递推几何 23 24
95%
Problem  L 扫雷 模拟贪心图论 5 43
11%
Problem  M 做幻方 模拟构造递推 3 28
10%
Problem  N 国王的魔镜 字符串 6 11
54%