1068 万绿丛中一点红 (20 分)

对于计算机而言,颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的颜色差充分大。

输入格式:

输入第一行给出三个正整数,分别是 M 和 N(≤ 1000),即图像的分辨率;以及 TOL,是所求像素点与相邻点的颜色差阈值,色差超过 TOL 的点才被考虑。随后 N 行,每行给出 M 个像素的颜色值,范围在 [ 内。所有同行数字间用空格或 TAB 分开。

输出格式:

在一行中按照 (x, y): color 的格式输出所求像素点的位置以及颜色值,其中位置 x 和 y 分别是该像素在图像矩阵中的列、行编号(从 1 开始编号)。如果这样的点不唯一,则输出 Not Unique;如果这样的点不存在,则输出 Not Exist

输入样例 1:

8 6 200
0 	 0 	  0 	   0	    0 	     0 	      0        0
65280 	 65280    65280    16711479 65280    65280    65280    65280
16711479 65280    65280    65280    16711680 65280    65280    65280
65280 	 65280    65280    65280    65280    65280    165280   165280
65280 	 65280 	  16777015 65280    65280    165280   65480    165280
16777215 16777215 16777215 16777215 16777215 16777215 16777215 16777215

输出样例 1:

(5, 3): 16711680

输入样例 2:

4 5 2
0 0 0 0
0 0 3 0
0 0 0 0
0 5 0 0
0 0 0 0

输出样例 2:

Not Unique

输入样例 3:

3 3 5
1 2 3
3 4 5
5 6 7

输出样例 3:

Not Exist
//该点唯一
#include<iostream>
#include<map>
using namespace std;
const int maxn = 1010;
int matrix[maxn][maxn];
map<int,int>mapp; 
int m,n,tol;int dir[8][2] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}};bool Judge(int x,int y){for(int k = 0; k < 8; k++){int tx = x + dir[k][0];int ty = y + dir[k][1];if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&matrix[x][y]-matrix[tx][ty]>=0-tol&&matrix[x][y]-matrix[tx][ty]<=tol)return false;}return true;
}int main(){scanf("%d%d%d",&m,&n,&tol);for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){scanf("%d",&matrix[i][j]);mapp[matrix[i][j]]++;}}int cnt = 0,u,v;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){if(mapp[matrix[i][j]] == 1 && Judge(i,j)){cnt++;u = i;v = j;//if(cnt > 1) break;
            }}}if(cnt == 0) printf("Not Exist\n");else if(cnt == 1) printf("(%d, %d): %d",v,u,matrix[u][v]);else printf("Not Unique\n");return 0;
}

 

转载于:https://www.cnblogs.com/wanghao-boke/p/10415562.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《个人项目学习指引》

1. 从零实现一个http服务器

1069 微博转发抽奖 (20 分)

小明 PAT 考了满分&#xff0c;高兴之余决定发起微博转发抽奖活动&#xff0c;从转发的网友中按顺序每隔 N 个人就发出一个红包。请你编写程序帮助他确定中奖名单。 输入格式&#xff1a; 输入第一行给出三个正整数 M&#xff08;≤ 1000&#xff09;、N 和 S&#xff0c;分别是…

【1】TCP三次握手的第三次的 ack包丢失会怎样?

面试题&#xff1a; 在 TCP 建立连接的三次握手连接阶段&#xff0c;如果客户端发送的第三个ACK包丢了&#xff0c;那么客户端和服务端分别进行什么处理呢&#xff1f; 相信了解 tcp 协议的人&#xff0c;三次握手的过程肯定很了解了。第三次的 ack 包丢失就是说在 client 端…

1070 结绳 (25 分

给定一段一段的绳子&#xff0c;你需要把它们串成一条绳。每次串连的时候&#xff0c;是把两段绳子对折&#xff0c;再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子&#xff0c;可以再次对折去跟另一段绳子串连。每次串连后&#xff0c;原来两段绳子的长度就会减…

动态规划目录

序号题目1 70. 爬楼梯

1071 小赌怡情 (15 分)

常言道“小赌怡情”。这是一个很简单的小游戏&#xff1a;首先由计算机给出第一个整数&#xff1b;然后玩家下注赌第二个整数将会比第一个数大还是小&#xff1b;玩家下注 t 个筹码后&#xff0c;计算机给出第二个数。若玩家猜对了&#xff0c;则系统奖励玩家 t 个筹码&#xf…

53. 最大子序和

给定一个整数数组 nums &#xff0c;找到一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大&#xff0c;为 6。 进阶: 如果你已经实现…

1072 开学寄语 (20 分)

下图是上海某校的新学期开学寄语&#xff1a;天将降大任于斯人也&#xff0c;必先删其微博&#xff0c;卸其 QQ&#xff0c;封其电脑&#xff0c;夺其手机&#xff0c;收其 ipad&#xff0c;断其 wifi&#xff0c;使其百无聊赖&#xff0c;然后&#xff0c;净面、理发、整衣&am…

九大经典算法之插入排序、希尔排序

01 插入排序(Insertion Sort) 原理&#xff1a;每次选择一个元素&#xff0c;并且将这个元素和整个数组中的所有元素进行比较&#xff0c;然后插入到合适的位置。 void insertion_sort(int arr[], int n) {int i,j;for (i 1; i < n; i) {int tmp arr[i];for (j i; j >…

九大经典算法之冒泡排序、快速排序

03 冒泡排序(Bubble Sort) 每次选择两个元素&#xff0c;按照需求进行交换&#xff08;比如需要升序排列的话&#xff0c;把较大的元素放在靠后一些的位置&#xff09;&#xff0c;循环 n 次&#xff08;n 为总元素个数&#xff09;&#xff0c;这样小的元素会不断 “冒泡” 到…

1073 多选题常见计分法 (20 分)

批改多选题是比较麻烦的事情&#xff0c;有很多不同的计分方法。有一种最常见的计分方法是&#xff1a;如果考生选择了部分正确选项&#xff0c;并且没有选择任何错误选项&#xff0c;则得到 50% 分数&#xff1b;如果考生选择了任何一个错误的选项&#xff0c;则不能得分。本题…

《二叉树》目录

序号题目标记 1 94. 二叉树的中序遍历 2 98. 验证二叉搜索树 3100. 相同的树 4101. 对称二叉树 5 102. 二叉树的层次遍历 6 103. 二叉树的锯齿形层次遍历 7104. 二叉树的最大深度 8 105. 从前序与中序遍历序列构造二叉树 9106. 从中序与后序遍历序列构造二叉树 10107. 二叉…

1075 链表元素分类 (25 分)

给定一个单链表&#xff0c;请编写程序将链表元素进行分类排列&#xff0c;使得所有负值元素都排在非负值元素的前面&#xff0c;而 [0, K] 区间内的元素都排在大于 K 的元素前面。但每一类内部元素的顺序是不能改变的。例如&#xff1a;给定链表为 18→7→-4→0→5→-6→10→1…

C++ 面试(一)

1. 编译器什么情况下&#xff0c;合成构造函数&#xff1f;[点击链接(一)] 编译器什么情况下&#xff0c;合成构造函数&#xff1f;

1074 宇宙无敌加法器 (20 分)

地球人习惯使用十进制数&#xff0c;并且默认一个数字的每一位都是十进制的。而在 PAT 星人开挂的世界里&#xff0c;每个数字的每一位都是不同进制的&#xff0c;这种神奇的数字称为“PAT数”。每个 PAT 星人都必须熟记各位数字的进制表&#xff0c;例如“……0527”就表示最低…

九大经典算法之选择排序、堆排序

05 选择排序 &#xff08;Selection Sort&#xff09; 原理&#xff1a;每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;然后&#xff0c;再从剩余未排序元素中继续寻找最小&#xff08;大&#xff…

九大经典算法之归并排序

07 归并排序 &#xff08;Merge Sort&#xff09; 归并操作的工作原理如下&#xff1a;第一步&#xff1a;申请空间&#xff0c;使其大小为两个已经排序序列之和&#xff0c;该空间用来存放合并后的序列&#xff1b;第二步&#xff1a;设定两个指针&#xff0c;最初位置分别为两…

长连接和Keepalive详解

客户端主机依旧活跃&#xff08;up&#xff09;运行&#xff0c;并且从服务器可到达。从客户端TCP的正常响应&#xff0c;服务器知道对方仍然活跃。服务器的TCP为接下来的两小时复位存活定时器&#xff0c;如果在这两个小时到期之前&#xff0c;连接上发生应用程序的通信&#…

九大经典算法之基数排序、桶排序

08 基数排序&#xff08;Radix Sort&#xff09; 基数排序是一种非比较型整数排序算法&#xff0c;其原理是将整数按位数切割成不同的数字&#xff0c;然后按每个位数分别比较。排序过程是将所有待比较数值统一为同样的数位长度&#xff0c;数位较短的数前面补零&#xff0c;然…

非阻塞connect

在 socket 是阻塞模式下 connect 函数会一直到有明确的结果才会返回&#xff08;或连接成功或连接失败&#xff09;&#xff0c;如果服务器地址“较远”&#xff0c;连接速度比较慢&#xff0c;connect 函数在连接过程中可能会导致程序阻塞在 connect 函数处好一会儿&#xff0…