• 九度OJ 1250:矩阵变换 (矩阵运算)


    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:95

    解决:47

    题目描述:

    对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一,
    现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。

    输入:

    输出:

    如果可以变换得到输出"Yes",否则"No"。
    存在多组数据,每组数据第一行一个正整数n(n<=10),表示一个n*n的矩阵,然后紧跟n行,每行n个整数。当n为0时,测试结束。

    样例输入:
    3
    1 10 9
    1 1 2
    1 0 1
    3
    0 1 0
    0 1 2
    1 0 1
    0
    样例输出:
    Yes
    No

    思路:

    设矩阵是A[n][n].
    (1)X=sum(A[i][j]其中i+j是奇数,Y=sum(A[i][j])其中i+j是偶数,则有X=Y
    (2)任意一个元素不大于周围四个元素的和
    以上两点是充要条件.


    代码:

    #include <stdio.h>
    #include <string.h>
     
    #define N 10
     
    int main(void)
    {
        int n, i, j, flag;
        int a[N+2][N+2];
        int odd, even;
     
        while (scanf("%d", &n) != EOF && n)
        {
            memset(a, 0, sizeof(a));
            odd = even = 0;
            for(i=1; i<=n; i++)
            {
                for(j=1; j<=n; j++)
                {
                    scanf("%d", &a[i][j]);
                    if ((i+j) % 2 == 0)
                        even += a[i][j];
                    else
                        odd += a[i][j];
                }
            }
     
            if (odd != even)
            {
                printf("No
    ");
                continue;
            }
     
            flag = 1;
            for(i=1; i<=n; i++)
            {
                for(j=1; j<=n; j++)
                {
                    if (a[i][j] > a[i-1][j] + a[i+1][j] + a[i][j-1] + a[i][j+1])
                    {
                        //printf("i=%d, j=%d
    ", i, j);
                        flag = 0;
                        break;
                    }
                }
                if (flag == 0)
                    break;
            }
            if (flag == 1)
                printf("Yes
    ");
            else
                printf("No
    ");
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1250
        User: liangrx06
        Language: C
        Result: Accepted
        Time:0 ms
        Memory:912 kb
    ****************************************************************/
    


    编程算法爱好者。
  • 相关阅读:
    【转载】Python未来互联网主流语言! . 天高地厚
    Android系统Intent的使用(转)
    android:获取联系人信息(姓名和电话)
    CMNET和CMWAP区别(转)
    Android界面开发推荐颜色
    android : framelayout 研究
    android : drag and drop ui
    android 四种模式研究之一
    ListView与CheckBox,EditText,Button结合
    android 之 custom view(一)
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083814.html
Copyright © 2020-2023  润新知