zoukankan      html  css  js  c++  java
  • 北航 2012年考研复试题2

    /*理解题目本身意思,可以发现对于矩阵中的0是否属于内陆,取决于该0所处的行和列上,如果0满足,
    如下条件则O为内陆,否则不是。
    0所在的行,0的左边和右边必须有1
    0所在的列,0的上面和下面必须有1
    所以,解题思路就是,遍历所有的行和列,记录改行或列,最左面和最右面(或者最上面和最下面)1的坐标,
    然后当遇到0,判断是否处于记录的值的中间,是,则是内陆,面积加1,否则不加。*/

    #include <stdio.h>
    int L[110][110];
    int R[110][110];
    int U[110][110];
    int D[110][110];
    int mat[110][110];
    
    int main() {
        int n, i, j, ans = 0;
        int flag = 0;
    //    freopen("A.txt", "r", stdin);
        scanf("%d", &n);
        for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
                scanf("%d", &mat[i][j]);
            }
        }
        //L
        for(i = 0; i < n; i++) {
            flag = 0;
            for(j = 0; j < n; j++) {
                if(mat[i][j] == 1) flag = 1;
                if(flag) L[i][j] = 1;
                else L[i][j] = 0;
            }
        }
        //R
        for(i = 0; i < n; i++) {
            flag = 0;
            for(j = n-1; j >= 0; j--) {
                if(mat[i][j] == 1) flag = 1;
                if(flag) R[i][j] = 1;
                else R[i][j] = 0;
            }
        }
        //U
        for(j = 0; j < n; j++) {
            flag = 0;
            for(i = 0; i < n; i++) {
                if(mat[i][j] == 1) flag = 1;
                if(flag) U[i][j] = 1;
                else U[i][j] = 0;
            }
        }
        //D
        for(j = 0; j < n; j++) {
            flag = 0;
            for(i = n-1; i >= 0; i--) {
                if(mat[i][j] == 1) flag = 1;
                if(flag) D[i][j] = 1;
                else D[i][j] = 0;
            }
        }
        for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
             printf("%d ",L[i][j]); 
            
            }
        }
        for(i = 0; i < n; i++) {
            for(j = 0; j < n; j++) {
                if(L[i][j] && R[i][j] && U[i][j] && D[i][j] && mat[i][j] == 0) ans++;
            }
        }
        printf("%d
    ", ans);
        return 0;
    }
  • 相关阅读:
    Linux内核TSS的使用
    DPL, CPL及RPL之间的关系
    Linux内存管理(深入理解Linux内核)
    Windows下安装PIL进行图像处理
    内存Zone中的pageset成员分析
    导出符号的意义
    GDI及Windows的消息机制
    kmalloc vs vmalloc
    Linux Kernel Development有关内存管理
    STL sort
  • 原文地址:https://www.cnblogs.com/Xilian/p/3826426.html
Copyright © 2011-2022 走看看