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

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

输入第一行给出三个正整数,分别是 M 和 N(≤ 1000),即图像的分辨率;以及 TOL,是所求像素点与相邻点的颜色差阈值,色差超过 TOL 的点才被考虑。随后 N 行,每行给出 M 个像素的颜色值,范围在 [0,224) 内。所有同行数字间用空格或 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
作者: CHEN, Yue
单位: 浙江大学
时间限制: 500 ms
内存限制: 64 MB
代码长度限制: 16 KB

这题边缘的情况也需要考虑,不然过不去测试点3和测试点5。色差指的是绝对值。可以通过 i-1 >= 1等来过滤边缘情况,每次判断8个领边。

#include <iostream>
#include <map>
#include <vector>
using namespace std;
typedef struct{int row;int col;long long color;
}ds;
int main(){long long m,n,tol;cin>>m>>n>>tol;long long store[1005][1005] = {0};map<long long,int> cnt_map;vector<ds> ans;for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {cin>>store[i][j];cnt_map[store[i][j]] = cnt_map[store[i][j]] + 1;}}for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {if(cnt_map[store[i][j]] > 1)continue;//左上if(i-1 >= 1 && j-1 >= 1 &&abs(store[i][j] - store[i-1][j-1]) <= tol)continue;//上if(i-1 >= 1 && abs(store[i][j] - store[i-1][j]) <= tol)continue;//右上if(i-1 >= 1 && j+1 <= m && abs(store[i][j] - store[i-1][j+1]) <= tol)continue;//右if(j+1 <= m && abs(store[i][j] - store[i][j+1]) <= tol)continue;//右下if(j+1 <= m && i+1 <= n && abs(store[i][j] - store[i+1][j+1]) <= tol)continue;//下if(i+1 <= n && abs(store[i][j] - store[i+1][j]) <= tol)continue;//左下if(j+1 <= n && i-1 <= 0 && abs(store[i][j] - store[i-1][j+1]) <= tol)continue;//左if(i-1 <= 0 && abs(store[i][j] - store[i-1][j]) <= tol)continue;ds mid;mid.row = i;mid.col = j;mid.color = store[i][j];ans.push_back(mid);}}if(ans.size() == 1){ds mid = ans[0];cout<<"("<<mid.col<<", "<<mid.row<<"): "<<mid.color;} else if(ans.size() == 0){cout<<"Not Exist";} else{cout<<"Not Unique";}return 0;
}

PAT 乙级 1068 万绿丛中一点红 (20分)相关推荐

  1. Python PAT乙级 1068 万绿丛中一点红 (20分) 成功

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

  2. C++学习之路 | PTA乙级—— 1068 万绿丛中一点红 (20 分)(精简)

    1068 万绿丛中一点红 (20 分) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点 ...

  3. PAT乙级_1068 万绿丛中一点红 (20 分)_python

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

  4. PTA乙级 1068 万绿丛中一点红——20分

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

  5. PAT 乙级 1068  万绿丛中一点红

    1068 万绿丛中一点红 (20 point(s)) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像 ...

  6. 【简便解法】1068 万绿丛中一点红 (20分)

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中 ...

  7. 【PAT乙级】1068 万绿丛中一点红 (20 分)

    题目地址 #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> ...

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

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

  9. PAT乙级 1029 旧键盘 (20 分)

    1029 旧键盘 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 原题链接 代码 #inc ...

  10. PAT乙级1028 人口普查 (20 分)

    1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 2 ...

最新文章

  1. 不恰当使用read会造成服务器阻塞
  2. boost::math::daubechies_wavelet用法的测试程序
  3. 一个女程序员的男友需求说明书(转)
  4. Leetcode算法题(C语言)7--两个数组的交集 II
  5. Centos 5 手动安装yum
  6. linux系统下安装ns,Ubuntu 14.04下安装ns2.35
  7. ionic tab(选项卡)
  8. 华为交换机Hybird 与 单臂路由
  9. winform之控件在Panel中居中
  10. 3DMAX场景渲染失败怎么办?
  11. 无法处理类型为text html,types – 解释为Font但使用MIME类型text / html传输的资源将无法修复...
  12. 小马马说MapReduce算法案例(1):二度人脉好友推荐
  13. [论文翻译]据传比MTCCN的FaceBoxes《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》
  14. Acrel-3000电能管理系统保证企业生产人员的生命安全,提高生产人员的工作效率
  15. 域名是干啥用的?企业自己都记不住的域名还能发挥作用吗?
  16. 关于DBeaver连接mysql驱动下载失败问题【数据库】
  17. 计算机硬件 软件指什么,什么叫软件,什么又叫硬件呀?(是电脑知识)
  18. 提取谷歌游览器Cookie的五重境界
  19. 百度快照被劫持跳转到博彩网站 终极解决办法
  20. 2022年中国研究生报考现状分析:考研热度只增不减,就业压力仍为主要因素[图]

热门文章

  1. URLOS安装、升级、卸载
  2. python小游戏————坦克大战
  3. android卡在开机画面,请教:用迅为4412开发板开机时卡在Android静止画面
  4. 数组的缩减(简易版)
  5. 区块链游戏企鹅大陆面世了,会是腾讯的区块链游戏吗?
  6. sqlite3:sqlite3_column 函数
  7. NOIP2017提高组广东省成绩
  8. 第一届安洵杯writeup
  9. 微信去除 防欺诈盗号请勿支付或输入qq密码 以及 防欺诈或盗号请不要输入qq密码 的方法
  10. vue3中瀑布流插件 vue-masonry 的使用