【PAT】B1068 万绿丛中一点红(20 分)
一开始因为看见这题就头疼,可费了点时间。
要考虑所有元素,如果忽略外圈元素,最后一个样例过不去。
而且要求只出现一次的元素,
我没有使用map,因为当时还没学,用map储存元素会节约好多代码
#include<cstdio>
#include<string.h>
int M,N,TOL;
int arr[1001][1001];
int da[20000000]={0};
int dir[8][2] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}};
bool judge(int i, int j) {
for (int k = 0; k < 8; k++) {
int tx = i + dir[k][0];
int ty = j + dir[k][1];
if (tx >= 0 && tx < M && ty >= 0 && ty < N && arr[i][j] - arr[tx][ty] >= 0 - TOL && arr[i][j] - arr[tx][ty] <= TOL) return false;
}
return true;
}
bool istrue(int i,int j){
long long high=arr[i][j]+TOL;
long long low=arr[i][j]-TOL;
for(int m=i-1;m<(i+2);m++){
for(int n=j-1;n<(j+2);n++){
if(arr[m][n]>=low&&arr[m][n]<=high&&m!=i&&n!=j)
return false;
}
}
return true;
}
int main(){
scanf("%d %d %d",&M,&N,&TOL);
int num=0,data[2];
for(int i=0;i<N;i++){ //input
for(int j=0;j<M;j++){
scanf("%d",&arr[i][j]);
da[arr[i][j]]++;
}
}
for(int i=0;i<N;i++){
for(int j=0;j<M;j++){
if(judge(i,j)&&da[arr[i][j]]==1){
if(num==1){
printf("Not Unique");return 0;
}
else{
data[0]=i;data[1]=j;num++;
}
}
}
}
if(num==0){
printf("Not Exist");
}else{
printf("(%d, %d): %d",data[1]+1,data[0]+1,arr[data[0]][data[1]]);
}
return 0;
}
【PAT】B1068 万绿丛中一点红(20 分)的更多相关文章
- PAT 1068. 万绿丛中一点红(20)
对于计算机而言,颜色不过是像素点对应的一个24位的数值.现给定一幅分辨率为MxN的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围8个相邻像素的颜色差充分大. 输入 ...
- 1068 万绿丛中一点红 (20分)C语言
对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的颜色差充 ...
- PAT 1068 万绿丛中一点红(20)(测试点分析+思路分析)
1068 万绿丛中一点红(20 分) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的 ...
- pat 1035 Password(20 分)
1035 Password(20 分) To prepare for PAT, the judge sometimes has to generate random passwords for the ...
- PAT 甲级 1035 Password (20 分)(简单题)
1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for ...
- PAT 1088 三人行(20 分)(暴力破解+流程分析)
1088 三人行(20 分) 子曰:"三人行,必有我师焉.择其善者而从之,其不善者而改之." 本题给定甲.乙.丙三个人的能力值关系为:甲的能力值确定是 2 位正整数:把甲的能力值的 ...
- pat 1077 Kuchiguse(20 分) (字典树)
1077 Kuchiguse(20 分) The Japanese language is notorious for its sentence ending particles. Personal ...
- pat 1008 Elevator(20 分)
1008 Elevator(20 分) The highest building in our city has only one elevator. A request list is made u ...
- PAT 甲级 1077 Kuchiguse (20 分)(简单,找最大相同后缀)
1077 Kuchiguse (20 分) The Japanese language is notorious for its sentence ending particles. Person ...
- PAT 甲级 1061 Dating (20 分)(位置也要相同,题目看不懂)
1061 Dating (20 分) Sherlock Holmes received a note with some strange strings: Let's date! 3485djDk ...
随机推荐
- CentOS 6.5 网络服务器功能的实现②:运用光盘(镜像)制作一个本地yum源
在用Linux安装软件时(rpm安装方式),有时会出现“包依赖”的现象.因此,我们可以用yum工具来实现一次性安装所有rpm工具包的功能. 实例:在此服务器上用yum的方式安装DHCP服务和TFTP服 ...
- vue axios封装以及API统一管理
在vue项目中,每次和后台交互的时候,经常用到的就是axios请求数据,它是基于promise的http库,可运行在浏览器端和node.js中.当项目越来越大的时候,接口的请求也会越来越多,怎么去管理 ...
- kafka集群partition分布原理分析
1. Kafka集群partition replication默认自动分配分析 下面以一个Kafka集群中4个Broker举例,创建1个topic包含4个Partition,2 Replication ...
- golang map输出排序
由于GoLang Map 内部存储是无序的,当需要按顺序获得map存储的key -value值时,应该对遍历出来的结果进行重新排序: 在go 1.8版本后,提供的slice sort 功能使排序更简单 ...
- Cordova - 彻底搞定IOS编译!
操作系统:OSX10.14 XCode:10.1 Cordova:8.1.2 假设已经配置好了Cordova开发环境,Apple ID你也有,XCode也可以正常工作了,那么就可以继续看这篇文章了! ...
- WebApi接口传参
目前接口统一使用 [FromBody]Dictionary<string,string> req 来接收. 有时候,需要把从req字典提取多个字段赋值给 model,几个还好,几十个赋值就 ...
- git+github/码云+VSCode (转载)
VSCode中使用git,参见. Git安装 在初次使用时如果本地没有安装git会提示先安装git,然后重启vscode. 一.本地操作项目前提: 1)若本地没有git拉取下来的项目,用git克隆 ...
- Mongodb的基本语法
前段时间工作上面由于没有多少事所以玩了玩mongodb,学习了它的基本语法,然后现在在这里做一个简单的总结. 1.我是在win平台上面,启动的话比较麻烦,所以我就简单的把启动过程做了个批处理文件 启动 ...
- 【Java并发编程】13、forkjoin
http://www.infoq.com/cn/articles/fork-join-introduction http://www.importnew.com/14506.html Java7中的F ...
- HDU6215
Brute Force Sorting Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Othe ...