2309B 数组与内存

· · 题解

Source & Knowledge

2023 年 09 月语言月赛,由洛谷网校入门计划/基础计划提供。

考察分支结构、阅读能力。

文字题解

本题给出了二维数组在线性内存中的分布规则。

如下图,给出了一个常规意义上想象的 3\times 4 数组。

而数组在内存中,是线性分布的:

对于 int 数组 a[N][M],就是从 a[0][0] 的内存地址开始,申请了 N\times M 个 int 类型的空间。访问 a[p][q],就是访问从 a[0][0] 开始的第 p\times N+q 个内存地址。

只需要判断 p\times N+qN\times M 的大小关系,如果 p\times N+q\le N\times M,则不会越界;如果 p\times N+q>N\times M,则会越界。

考虑到 N,M,p,q 的数量级均达到了 10^9,需要使用 long long。

视频题解