1 条题解

  • 0
    @ 2025-8-24 21:14:12

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 览遍千秋
    将伤与泪汇成力化作拳

    搬运于2025-08-24 21:14:11,当前版本为作者最后更新于2022-08-15 20:11:12,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    Source & Knowledge

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

    由皎月半撒花命题。

    考察二维数组与多重循环。


    文字题解

    题意简述

    给出一个 n×mn \times m 的矩阵,每个位置上有一个数字 bi,jb_{i,j},若 bx,y=bi,jb_{x,y}=b_{i,j},则称 (x,y)(x,y)(i,j)(i,j) 的亲戚,他们的距离为 (xi)2+(yj)2(x-i)^2 + (y-j)^2

    对于每个位置,求亲戚的最远距离。

    问题分析

    我们可以枚举位置 (i,j)(i,j),再枚举位置 (x,y)(x,y),如果它们数字相等,则更新位置 (i,j)(i,j) 上的答案。

    需要注意的是 ^ 符号在 C++ 语言中不代表乘方的意思,该符号在 C++ 中为异或运算。x2x^2 需要用 x * x 来表达。

    在本题中,nn 代表行,mm 代表列,需要看清,不能写错。

    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= m; j++) {
            for(int x = 1; x <= n; x++) {
                for(int y = 1; y <= m; y++) {
                    if(b[i][j] == b[x][y]) {
                        ans[i][j] = max(ans[i][j], (i - x) * (i - x) + (j - y) * (j - y);
                    }
                }
            }
        }
    }
    

    视频题解

    • 1

    信息

    ID
    7857
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者