首页 > 编程语言 >【PAT_Python解 带全部测试点】1068 万绿丛中一点红

【PAT_Python解 带全部测试点】1068 万绿丛中一点红

时间:2024-10-15 19:19:48浏览次数:8  
标签:1068 num 测试点 img lw abs tol PAT

原题链接:PTA | 程序设计类实验辅助教学平台

  • 测试点0: 独一无二
  • 测试点1: Not Unique
  • 测试点2: Not Exist
  • 测试点3: 独一无二        点在边缘(相邻数值不足8个)
4 5 2
0 7 0 0
0 0 0 0
0 0 0 4
0 0 0 0
0 0 7 0
答案:(4, 3): 4
  • 测试点5: 点在边缘(相邻数值不足8个)
4 5 2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 7 0
(3, 5): 7

坑点分析:

坑点1:在一行中按照 (x, y): color 的格式输出所求像素点的位置以及颜色值,其中位置 xy 分别是该像素在图像矩阵中的列、行编号(从 1 开始编号)。

        解析:输出形式:先列,后行!编号从1开始

坑点2:万绿丛中的一点红,即有独一无二颜色的那个像素点。

        解析:整个图像矩阵中只出现过一次,字典判断出现次数,count肯定会超时,没尝试~

坑点3:并且该点的颜色与其周围 8 个相邻像素的颜色差充分大。

        解析:图像矩阵中每个点与相邻一圈差值都>TOL颜色差阈值,如:左上角只判断【右】【右下】【下】,第一列没有【左上】【左】【左下】,-1列亦是如此

坑点4:色差超过 TOL 的点才被考虑。

         解析:计算时加上绝对值abs,因为判断像素点可能比周围一圈数字小,色差是绝对值差,不分正负哦~

有问题留言,看到会回复解答~

AC代码如下:

import sys

dic = {}
m, n, tol = map(int, sys.stdin.readline().split())
img = [[10**9 for j in range(m+2)] for i in range(n+2)]
for i in range(1, n+1):
    nums = list(map(int, sys.stdin.readline().split()))
    for j in range(1, m+1):
        num = nums[j-1]
        img[i][j] = num
        dic[num] = dic.get(num, 0) + 1
row, col, max_num = 0, 0, 0
Not_Unique = False
Not_Exist = True
for i in range(1, n+1):
    if Not_Unique: break
    for j in range(1, m+1):
        num = img[i][j]
        if dic[num] == 1:
            lft = img[i][j-1] 
            up_lft = img[i-1][j-1]
            up = img[i-1][j]
            up_rht = img[i-1][j+1]
            lw_lft = img[i+1][j-1]
            lw = img[i+1][j]
            lw_rht = img[i+1][j+1]
            rht = img[i][j+1]
            if abs(num - lft) > tol and abs(num - up_lft) > tol and abs(num - up) > tol and abs(num - up_rht) > tol:
                if abs(num - lw_lft) > tol and abs(num - lw) > tol and abs(num - lw_rht) > tol and abs(num - rht) > tol:
                    Not_Exist = False
                    if row !=0:
                        Not_Unique = True
                        break
                    col = j
                    row = i
                    max_num = num
if Not_Exist:
    print('Not Exist')
elif Not_Unique:
    print('Not Unique')
else:
    print(f'({col}, {row}): {max_num}')

标签:1068,num,测试点,img,lw,abs,tol,PAT
From: https://blog.csdn.net/m0_56677113/article/details/142690348

相关文章

  • xpath案例-豆瓣top250电影
    需求:需求:爬取电影名称、评分、引言、详情页的url,翻页爬取1-10页。代码:importrequestsfromlxmlimportetree'''url分析:第一页:https://movie.douban.com/top250第二页:https://movie.douban.com/top250?start=25&filter=第三页:https://movie.douban.com/top250......
  • 数据解析 - xpath 语法
    1、基础语法(1)/说明:从根节点开始。示例:/html/body(2)//说明:选择匹配的任何位置。示例://input(3).说明:当前节点。(4)..说明:父节点。(5)@说明:选择属性。示例://*[@id="kw"]#表示选择具备id="kw"属性的节点(6)[node]说明:选择所有node子元素。(7)[@attr]说明:选取带有attr属......
  • datframe格式 填充apply 报错incompatible index of inserted column with frame inde
    源代码importpandasaspddf=pd.read_csv("Titanic.csv")#对Sex分组,用各组乘客的平均年龄填充各组中的缺失年龄df_cleaned['Age']=df_cleaned.groupby('Sex')['Age'].apply(lambdax:x.fillna(x.mean()))报错信息incompatibleindexofinsertedcol......
  • 【Unity寻路插件】A Pathfinding Project Pro
    A*PathfindingProjectPro是一款功能强大且高度优化的路径寻路插件,专为Unity开发者打造。它基于A*算法,广泛应用于游戏AI和实时策略游戏的寻路需求,尤其适合需要高效处理复杂路径计算的大型项目。该插件不仅支持常见的二维和三维场景,还提供多种寻路算法、性能优化工具......
  • java 文件的操作(Path、Paths、Files)
    Path、Paths和Files是JavaNIO(NewI/O)文件处理系统中的核心组件,它们提供了比传统java.io.File更加灵活和高效的文件操作方式。1.概述随着Java7引入NIO.2(即JavaNewI/O2),文件处理得到了显著改进。Path、Paths和Files是NIO.2中用于文件和目录操作的三个关键组件......
  • java 文件的操作(Path、Paths、Files)
    Path、Paths和Files是JavaNIO(NewI/O)文件处理系统中的核心组件,它们提供了比传统java.io.File更加灵活和高效的文件操作方式。1.概述随着Java7引入NIO.2(即JavaNewI/O2),文件处理得到了显著改进。Path、Paths和Files是NIO.2中用于文件和目录操作的三个关......
  • Nuxt.js 应用中的 kit:compatibility 事件钩子详解
    title:Nuxt.js应用中的kit:compatibility事件钩子详解date:2024/10/11updated:2024/10/11author:cmdragonexcerpt:kit:compatibility是处理浏览器兼容性问题的有效工具。正如本篇文章中所述,合理地利用这一钩子可以提升用户体验,并确保应用在不同环境中都能稳......
  • 干货分享 | PCB测试点的用途
    ​PCB测试点长什么样子?请看下图:​如果你曾经用过NOKIA手机,每次你打开后盖换电池的时候,每次看到的那两排圆形的点——就是PCB测试点,oryoucancallitTestPointinEnglish.NOKIA手机的测试点有什么作用?为什么要留这两排测试点?大概可以猜测出来:SIM卡测试点:生产或维修......
  • Spatial-Temporal Large Language Model for Traffic Prediction
    1.输入数据这符合时间序列预测的典型设置:输入数据包含多个特征(如历史的流量、天气、时间等),这些特征用于帮助模型进行预测。输出数据则通常是要预测的目标变量,比如未来某个时间步的流量或温度,这个目标变量是一个单一的值,因此输出通道数是1。x_train包含多个特征(3个通道),作......
  • TypeError: add_triangle_mesh(): incompatible function arguments. The following a
    12024.10.1214:52Traceback(mostrecentcalllast):File"terrain_creation.py",line119,in<module>gym.add_triangle_mesh(sim,vertices.flatten(),triangles.flatten(),tm_params)TypeError:add_triangle_mesh():incompatiblefunct......