C++ 算法考级专栏
真题分析、矩阵探测、递归回溯与基础语法
🎨 视觉封面【二维数组与行列双重排序】GESP四级 / CSP-J 题解:luogu-B4580 [GESP202609 四级] 有序网格
CCF GESP 2026年9月认证(第十五次认证)C++ 四级试题,洛谷 B4580。本题严格遵循 CCF GESP 官方大纲规范,重点考察二维数组与行列双重排序。题目逻辑严密,模型典型,是深入理解与掌握信奥核心考点的经典范例。
B4580 [luogu-B4580 [GESP202609 四级] 有序网格]
🔗 洛谷原题传送门:B4580
题目要求
题目描述
小 A 有一个 行 列格子组成的二维网格。小 A 想让二维网格变得有序,因此他先对每一行从左到右按升序排序,再对每一列从上到下按升序排序。 请编写程序求出二维网格经过以上两次排序后的最终结果。
输入格式
第一行两个正整数 ,表示行数与列数。 接下来 行,每行 个整数表示网格中的数字。
输出格式
输出 行,每行 个整数,表示先后完成行排序与列排序后的网格。
输入输出样例
样例输入 #1
3 2
6 5
4 3
2 1
样例输出 #1
1 2
3 4
5 6
说明/提示
,。
题目分析与解题思路
- 二维网格操作模型:
题目步骤非常明确,属于标准的两阶段模拟与排序考点:
- 第一阶段(行排序):固定行索引 ,对第 行的元素
grid[i][0 ... m-1]直接调用std::sort(grid[i], grid[i] + m)执行升序排序; - 第二阶段(列排序):固定列索引 ,取出第 列的全部 个元素放入临时数组或向量
col,排序后再依次写回第 列。
- 第一阶段(行排序):固定行索引 ,对第 行的元素
- 数据规模极小:,总元素最多 100 个,耗时微乎其微。
完整参考代码 (C++11)
/**
* Problem: luogu-B4580
* Standard: C++11 (CCF GESP 官方大纲规范)
* Author: OneCoder
*/
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
if (!(cin >> n >> m)) {
return 0;
}
int grid[15][15];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> grid[i][j];
}
}
// 1. 对每一行按升序排序
for (int i = 0; i < n; ++i) {
sort(grid[i], grid[i] + m);
}
// 2. 对每一列按升序排序
for (int j = 0; j < m; ++j) {
vector<int> col(n);
for (int i = 0; i < n; ++i) {
col[i] = grid[i][j];
}
sort(col.begin(), col.end());
for (int i = 0; i < n; ++i) {
grid[i][j] = col[i];
}
}
// 3. 规整输出排序结果
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cout << grid[i][j] << (j + 1 == m ? "" : " ");
}
cout << "\n";
}
return 0;
}
考点归纳与备考建议
- 考纲匹配度:严格对标 CCF GESP 四级考纲重点,绝不超纲,注重基础算法与逻辑建模规范;
- 规范防范:所有代码严格以 C++11 标准编译运行,针对整数溢出、边界判断、空状态均做了详尽严整的防御性处理。
所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI
欢迎加入:C++ GESP/CSP 考级答疑群(688906745) 与 Java/Python交流群(982860385),点击可直接加群。
猜你想读 · 相关文章推荐
【顺时针单向递归与双状态递推】GESP四级 / CSP-J 题解:luogu-B4579 [GESP202609 四级] 新汉诺塔
CCF GESP 2026年9月认证(第十五次认证)C++ 四级试题,洛谷 B4579。本题严格遵循 CCF GESP 官方大纲规范,重点考察顺时针单向递归与双状态递推。题目逻辑严密,模型典型,是深入理解与掌握信奥核心考点的经典范例。
【结构体与多关键字排序】GESP四级 / CSP-J 题解:luogu-P1093 [NOIP2007 普及组] 奖学金
NOIP 2007 普及组第一题,洛谷 P1093。本题是青少年信息学奥赛与编程等级考试中学习结构体(struct)与多关键字排序(Multi-key Sorting)的标志性入门经典试题,被标准收录于 CCF GESP 四级认证考纲(结构体与排序考点)及 CSP-J 普及组核心必做题单。题目重点考察结构体定义、数据复...
【GESP】C++ 四级真题解析,[2025年12月,第十二次认证]第二题优先购买
GESP C++ 2025年12月,四级真题第二题,考察结构体定义与自定义排序算法,涵盖贪心思想。题目难度⭐⭐★☆☆。
OneCoder (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com