当前位置: 首页 > news >正文

week2-[二维数组]排队

week2-[二维数组]排队

题目描述

班上的同学排成了 NNNMMM 列的长方形队列,第 iii 行 第 jjj 列的同学身高为 Ai,jA_{i,j}Ai,j。班主任认为,如果一个长方形队列中,每一列同学都是按身高从低到高排列的,那么这样的长方形队列是美观的。现在班主任想要知道,同学们排成的长方形队列中,有多少列满足同学是按身高从低到高排列的(即这一列除第一行同学之外,每一位同学的身高都不低于该列前一行同学的身高)。

输入格式

读入包括 N+1N+1N+1 行。第一行包括 222 个整数 NNNMMM,表示同学们排成的长方形队列的行数和列数。接下来 NNN 行,每行包括 MMM 个整数,表示长方形队列中每一位同学的身高。

输出格式

输出一个整数,表示同学们排成的长方形队列中,有多少列满足同学是按身高从低到高排列的。

样例 #1

样例输入 #1

3 3
132 131 138
136 133 131
138 132 135

样例输出 #1

1

样例 #2

样例输入 #2

3 5
142 135 132 137 130
135 139 134 134 135
126 127 137 135 135

样例输出 #2

2

样例 #3

样例输入 #3

4 3
125 154 143
155 134 144
143 142 134
124 135 145

样例输出 #3

0

提示

样例解释1

111 列同学身高是从低到高排列的。

样例解释2

333 列和第 555 列同学身高是从低到高排列的。

样例解释3

没有一列同学身高是完全从低到高排列的。

数据范围

对于所有数据,3≤N,M≤20,110≤Ai,j≤1903 \le N,M \le 20, 110 \le A_{i,j} \le 1903N,M20,110Ai,j190

1. 阅读题目

题目给定一个 N×MN \times MN×M 的二维数组 AAA,表示 NNNMMM 列的同学身高。
要求:统计有多少列满足 从上到下身高不下降,即对于该列 jjj,从第 2 行开始都有 Ai,j≥Ai−1,jA_{i,j} \ge A_{i-1,j}Ai,jAi1,j

输入:

  • 第一行:N,MN, MN,M
  • 接下来 NNN 行:每行 MMM 个整数,表示身高

输出:

  • 一个整数,表示有多少列是“非递减”的。

数据范围:3≤N,M≤203 \le N,M \le 203N,M20110≤Ai,j≤190110 \le A_{i,j} \le 190110Ai,j190
范围很小,可以直接暴力遍历。


2. 分析问题

  • 对每一列 jjj1≤j≤M1 \le j \le M1jM):
    • 检查 i=2..Ni=2..Ni=2..N 时是否有 Ai,j≥Ai−1,jA_{i,j} \ge A_{i-1,j}Ai,jAi1,j
    • 如果整列都满足,则该列计数 +1。
  • 时间复杂度:
    • O(N×M)O(N \times M)O(N×M),在 20×20=40020 \times 20 = 40020×20=400 范围内,完全没问题。

边界情况:

  • 所有列严格下降 → 答案是 0
  • 所有列非递减 → 答案是 MMM
  • 有相等情况也算“从低到高”(因为题目是“不低于”)。

3. C++ 代码实现(兼容低版本)

我写一个 C++11 安全写法(避免 autovector 初始化列表、结构化绑定等),用 cin/cout 就能过。

#include <iostream>
using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(NULL);int N, M;cin >> N >> M;int A[25][25]; // 题目范围 N,M <= 20,开25足够for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {cin >> A[i][j];}}int ans = 0;// 遍历每一列for (int j = 0; j < M; j++) {bool ok = true;for (int i = 1; i < N; i++) {if (A[i][j] < A[i-1][j]) { // 不满足非递减ok = false;break;}}if (ok) ans++;}cout << ans << "\n";return 0;
}
http://www.lryc.cn/news/627175.html

相关文章:

  • JS对象与JSON转换全解析
  • (Python)[特殊字符] 基于Flask/FastAPI的RESTful API服务 + 数据库 + 缓存 + 简单前端 (Python项目)
  • 【运维进阶】shell三剑客
  • Qt文件操作
  • 《算法导论》第 35 章-近似算法
  • 【数据结构】线性表——顺序表
  • RAG流程全解析:从数据到精准答案
  • FreeCAD教程-利用额外的平面和草图工作台的外部几何工具连接不同草图
  • C/C++ 与嵌入式岗位常见笔试题详解
  • DataFrame中.iloc 属性
  • 动态规划----8.乘积最大子数组
  • Docker操作速查表
  • 海量数据测试指南与实战
  • Advanced Math Math Analysis |01 Limits, Continuous
  • C++/Qt开发:TCP通信连接软件测试方法:ECHO指令
  • PyTorch API 5
  • CorrectNav——基于VLM构建带“自我纠正飞轮”的VLN:通过「视觉输入和语言指令」预测导航动作,且从动作和感知层面生成自我修正数据
  • CoreShop微信小程序商城框架开启多租户-添加一个WPF客户端以便进行本地操作(5)
  • 当 AI 开始 “理解” 情绪:情感计算如何重塑人机交互的边界
  • 基于单片机环境火灾安全检测
  • NVIDIA Isaac Sim
  • 48 C++ STL模板库17-容器9-关联容器-映射(map)多重映射(multimap)
  • VR交通安全学习机-VR交通普法体验馆方案
  • 2026 济南淀粉深加工展览会亮点:玉米科技与未来产业发展
  • IPSEC安全基础
  • C++智能指针详解:告别内存泄漏,拥抱安全高效
  • 【科研绘图系列】R语言绘制平滑曲线折线图
  • AI重塑软件测试:质量保障的下一站
  • MySQL分库分表与MyCAT
  • PiscCode集成Hand Landmarker:实现高精度手部姿态检测与分析