zoukankan      html  css  js  c++  java
  • 【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;
    }
    
    
  • 相关阅读:
    Python大婶博客汇总
    DevOps之零停机部署
    DevOps之持续交付
    DevOps工具链
    DevOps的概念
    敏捷开发
    自动化运维
    tomcat优化
    java 集合专练
    java匿名内部类,多态,接口练习
  • 原文地址:https://www.cnblogs.com/hebust/p/9496082.html
Copyright © 2011-2022 走看看