• 九度OJ-1001-A+B矩阵-有些小技巧


    题目1001:A+B for Matrices

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:22974

    解决:9099

    题目描述:

        This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns.

    输入:

        The input consists of several test cases, each starts with a pair of positive integers M and N (≤10) which are the number of rows and columns of the matrices, respectively. Then 2*M lines follow, each contains N integers in [-100, 100], separated by a space. The first M lines correspond to the elements of A and the second M lines to that of B.

        The input is terminated by a zero M and that case must NOT be processed.

    输出:

        For each test case you should output in one line the total number of zero rows and columns of A+B.

    样例输入:
    2 2
    1 1
    1 1
    -1 -1
    10 9
    2 3
    1 2 3
    4 5 6
    -1 -2 -3
    -4 -5 -6
    0
    样例输出:
    1
    5
    来源:
    2011年浙江大学计算机及软件工程研究生机试真题
    #include <stdio.h>
    int ma[11][11];
    int mb[11][11];
    
    int main()    {
        int a, b;
        while(scanf("%d", &a))    {
            
            if(a == 0)    return 0;
            scanf("%d", &b);
            
            for(int i = 0; i < a; i++)    {
                for(int j = 0; j < b; j++)    {
                    scanf("%d", &ma[i][j]);
                }
            }
            for(int i = 0; i < a; i++)    {
                for(int j = 0; j < b; j++)    {
                    scanf("%d", &mb[i][j]);
                    mb[i][j] += ma[i][j];
                }
            }
            
            // sum
            int su = 0;
            int co = 0;
            for(int i = 0; i < a; i++)    {
                for(int j = 0; j < b; j++)    {
                    if(mb[i][j] != 0){
                        co++;
                        // printf("%d %d
    ", i, j);
                        break;
                    }    
                    
                }
                if(co == 0)    {
                    su++;
                    // printf("%d %d
    ", i, su);
                }
                else co = 0;
            }
            
            co = 0;
            for(int j = 0; j < b; j++)    {
                for(int i = 0; i < a; i++)    {
                    if(mb[i][j] != 0)    {
                        co++;
                        break;
                    }    
                    
                }
                if(co == 0)    {
                    su++;
                }
                else co = 0;
            }
            
            printf("%d
    ", su);
        }
        return 0;
    }
  • 相关阅读:
    DBSCAN算法及sklearn实现
    K-MEANS算法及sklearn实现
    Linux删除有规则文件夹,比如(50-100)
    11.tensorboard网络结构
    10.优化器
    9.正则化
    8.Dropout
    Linux中awk后面的RS, ORS, FS, OFS 含义
    hadoop 客户的的使用
    shell中的>&1和 >&2是什么意思?
  • 原文地址:https://www.cnblogs.com/QingHuan/p/7100314.html
Copyright © 2020-2023  润新知