俊俏地鼠的远亲

这篇文章描述了一个编程问题,要求在给定的地鼠家族网格中,根据每只地鼠的特征值找到其最远亲戚的距离,利用编程语言如C++实现,适用于IT技术中的数据结构和算法问题解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[语言月赛202208] 俊俏地鼠的远亲

题目背景

地鼠十分想要找到自己远方的亲戚!

题目描述

非洲同胞永远是我们的好朋友。在东非草原上,一共有 n × m n\times m n×m 只地鼠,他们生活的窝排列成 n × m n\times m n×m 网格型。

其中,每只地鼠都有一个特征值 b i , j b_{i,j} bi,j,经调查,我们认为特征值相同的地鼠一定有某种血缘关系。例如,两只地鼠分别生活在第二行第三列、第五行第六列。若 b 2 , 3 = b 5 , 6 b_{2,3}=b_{5,6} b2,3=b5,6,那么我们认为这两只地鼠是亲戚。

现在,给出这个 n × m n\times m n×m 只地鼠的位置,需要对每只地鼠求出离自己距离最远的亲戚的距离是多少。

注意,假设两只地鼠分别位于第 i i i 行第 j j j 列和第 a a a 行第 b b b 列,则它们之间的距离为 ( i − a ) 2 + ( b − j ) 2 (i-a)^2+(b-j)^2 (ia)2+(bj)2

输入格式

第一行两个正整数 n , m n,m n,m,表示地鼠家族的行数和列数。

2 ∼ n + 1 2\sim n+1 2n+1 行给出一张大小为 n × m n\times m n×m 的数表 { b n , m } \{b_{n,m}\} {bn,m},其中 b i , j b_{i,j} bi,j 表示第 i i i j j j 列上地鼠的特征值。

输出格式

输出同样是一个 n × m n\times m n×m 的数表,其中每个元素表示距自己最远的亲戚的距离是多少。

特别的,如果有某只地鼠没有远亲,则输出 0 0 0

样例 #1

样例输入 #1

2 4
1 2 3 2
3 2 1 3

样例输出 #1

5 4 5 5
9 5 5 9

提示说明

对于 30 % 30\% 30% 的数据, 1 ≤ n , m ≤ 3 1\leq n,m \leq 3 1n,m3

对于另外 10 % 10\% 10% 的数据,有 n = 1 n=1 n=1

对于另外 10 % 10\% 10% 的数据,有 m = 1 m=1 m=1

对于另外 10 % 10\% 10% 的数据,有 b i , j = 1 b_{i,j}=1 bi,j=1

对于 100 % 100\% 100% 的数据, 1 ≤ n , m ≤ 50 1\leq n,m\leq 50 1n,m50 1 ≤ b i , j ≤ 1 0 18 1\leq b_{i,j}\leq 10^{18} 1bi,j1018

代码内容

//#include <iostream>
//#include <algorithm>
//#include <string>
//#include <cmath>
//#include <ctime>
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main()
{
    ll n,m;
    cin>>n>>m;
    ll arr[n][m],maxn[n][m];
    ll i,j,nums;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
        {
            cin>>arr[i][j];
            maxn[i][j]=0;
        }

    ll k,h;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            for(k=0;k<n;k++)
                for(h=0;h<m;h++)
                {
                    if(arr[i][j]==arr[k][h])
                    {
                        nums=(i-k)*(i-k)+(j-h)*(j-h);
                        maxn[i][j]=max(nums,maxn[i][j]);
                    }
                }

    for(i=0;i<n;i++)
    {
        cout<<maxn[i][0];
        if(m==1) cout<<endl;
        for(j=1;j<m;j++)
        {
            cout<<" "<<maxn[i][j];
            if((j+1)%m==0) cout<<endl;
        }
    }
    return 0;
}
python+opencv简谱识别音频生成系统源码含GUI界面+详细运行教程+数据 一、项目简介 提取简谱中的音乐信息,依据识别到的信息生成midi文件。 Extract music information from musical scores and generate a midi file according to it. 二、项目运行环境 python=3.11.1 第三方库依赖 opencv-python=4.7.0.68 numpy=1.24.1 可以使用命令 pip install -r requirements.txt 来安装所需的第三方库。 三、项目运行步骤 3.1 命令行运行 运行main.py。 输入简谱路径:支持图片或文件夹,相对路径或绝对路径都可以。 输入简谱主音:它通常在第一页的左上角“1=”之后。 输入简谱速度:即每分钟拍数,同在左上角。 选择是否输出程序中间提示信息:请输入Y或N(不区分大小写,下同)。 选择匹配精度:请输入L或M或H,对应低/中/高精度,一般而言输入L即可。 选择使用的线程数:一般与CPU核数相同即可。虽然python的线程不是真正的多线程,但仍能起到加速作用。 估算字符上下间距:这与简谱中符号的密集程度有关,一般来说纵向符号越稀疏,这个值需要设置得越大,范围通常在1.0-2.5。 二值化算法:使用全局阈值则跳过该选项即可,或者也可输入OTSU、采用大津二值化算法。 设置全局阈值:如果上面选择全局阈值则需要手动设置全局阈值,对于.\test.txt中所提样例,使用全局阈值并在后面设置为160即可。 手动调整中间结果:若输入Y/y,则在识别简谱后会暂停代码,并生成一份txt文件,在其中展示识别结果,此时用户可以通过修改这份txt文件来更正识别结果。 如果选择文件夹的话,还可以选择所选文件夹中不需要识别的文件以排除干扰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pretty Boy Fox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值