2026/5/21 16:49:38
网站建设
项目流程
广州网站建设+美词,vue大型网站怎么做路由,制作网站推广码,威海seo公司B4451 [GESP202512 四级] 建造
题目描述
小 A 有一张 MMM 行 NNN 列的地形图#xff0c;其中第 iii 行第 jjj 列的数字 aija_{ij}aij 代表坐标 (i,j)(i, j)(i,j) 的海拔高度。
停机坪为一个 333 \times 333 的区域#xff0c;且内部所有 999 个点的最大高度和最小高度之差不…B4451 [GESP202512 四级] 建造题目描述小 A 有一张MMM行NNN列的地形图其中第iii行第jjj列的数字aija_{ij}aij代表坐标(i,j)(i, j)(i,j)的海拔高度。停机坪为一个3×33 \times 33×3的区域且内部所有999个点的最大高度和最小高度之差不超过HHH。小 A 想请你计算出在所有适合建造停机坪的区域中区域内部999个点海拔之和最大是多少。输入格式第一行三个正整数M,N,HM, N, HM,N,H含义如题面所示。之后MMM行第iii行包含NNN个整数ai1,ai2,…,aiNa_{i1}, a_{i2}, \dots, a_{iN}ai1,ai2,…,aiN代表坐标(i,j)(i, j)(i,j)的高度。数据保证总存在一个适合建造停机坪的区域。输出格式输出一行代表最大的海拔之和。输入输出样例 #1输入 #15 5 3 5 5 5 5 5 5 1 5 1 5 5 5 5 5 5 5 2 5 2 5 3 5 5 5 2输出 #140说明/提示数据范围对于所有测试点保证1≤M,N≤1031 \leq M, N \leq 10^31≤M,N≤1031≤H,aij≤1051 \leq H, a_{ij} \leq 10^51≤H,aij≤105。题解建造一、 解题思路确定遍历对象3×3区域的位置由其左上角坐标(i,j)唯一确定有效左上角坐标的行范围是1~m-2、列范围是1~n-2该范围可保证3×3区域不超出地形图边界遍历该范围内所有坐标即可覆盖所有潜在停机坪区域。合法性校验对每个左上角(i,j)对应的3×3区域遍历区域内9个点找出最大海拔和最小海拔判断两者差值是否不超过阈值H满足条件则该区域合法。计算海拔总和对于合法的3×3区域再次遍历区域内9个点累加所有点的海拔高度得到该区域的海拔总和。维护全局最大值定义全局变量ans存储最终结果并初始化为0每次得到合法区域的海拔和后通过max函数更新ans确保其始终保存当前最大的合法区域海拔和。#includebits/stdc.h// 引入C所有标准库头文件简化编码流程usingnamespacestd;intm,n,h;// 全局变量地形图行数m、列数n、高度差阈值hinta[1005][1005];// 存储海拔高度的二维数组1005×1005满足m、n≤10³的要求intans0;// 存储最大合法3×3区域海拔和初始化为0// 校验函数判断以(x,y)为左上角的3×3区域是否合法// 合法条件区域内最大海拔与最小海拔差值≤hboolcheck(intx,inty){intmxa[x][y],mna[x][y];// 初始化最大/最小海拔为区域左上角值// 双层循环遍历3×3区域内所有9个点for(intix;ix3;i){for(intjy;jy3;j){mxmax(mx,a[i][j]);// 更新区域最大海拔mnmin(mn,a[i][j]);// 更新区域最小海拔}}returnmx-mnh;// 返回区域是否合法的判断结果}// 求和函数计算以(x,y)为左上角的3×3区域海拔总和intsum(intx,inty){intret0;// 累加变量存储区域海拔总和// 双层循环遍历3×3区域累加所有点的海拔for(intix;ix3;i){for(intjy;jy3;j){reta[i][j];}}returnret;// 返回区域海拔总和}intmain(){// 输入行数m、列数n、高度差阈值hcinmnh;// 输入m行n列的海拔数据采用1-based索引存储for(inti1;im;i){for(intj1;jn;j){cina[i][j];}}// 修正后的循环条件i≤m-2j≤n-2避免3×3区域越界for(inti1;im-2;i){// i的有效上限为m-2保证i2≤mfor(intj1;jn-2;j){// j的有效上限为n-2保证j2≤n// 仅合法区域才计算海拔和并更新最大值if(check(i,j)){ansmax(ans,sum(i,j));}}}coutans;// 输出最大合法区域海拔和return0;}