zoukankan      html  css  js  c++  java
  • Codeforces 486B

    矩阵的 OR ,也是醉了。

    题目意思很简单,就是问你有没有这么一个矩阵,可以变化,得到输入的矩阵。

    要求是这个矩阵每行都可以上下任意移动,每列都可以左右任意移动。

    解题方法:

      1.也是导致我WA 的原因,首先要判断是否是一个零矩阵,如果是一个零矩阵,那么YES输出

      2.判断输入矩阵存在1的那个位置,在输出矩阵的同一行同一列是否存在1,如果没有则NO输出

      3.开辟数组X[MAXN],Y[MAXN]记录这一行或者这一列是否有0这个元素

    //#pragma comment(linker, "/STACK:16777216") //for c++ Compiler
    #include <stdio.h>
    #include <iostream>
    #include <cstring>
    #include <cmath>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <algorithm>
    #define ll long long
    #define Max(a,b) (((a) > (b)) ? (a) : (b))
    #define Min(a,b) (((a) < (b)) ? (a) : (b))
    #define Abs(x) (((x) > 0) ? (x) : (-(x)))
    using namespace std;
    
    const int INF = 0x3f3f3f3f;
    
    int a[111][111], b[111][111], x[111], y[111];// Martix a as output Martix, Martix b as input Martix
    int n, m;
    
    int main(){
        int i, j, t, k;
        while(EOF != scanf("%d%d",&n,&m)){
            for(i = 1; i <= n; ++i){
                for(j = 1; j <= m; ++j){
                    scanf("%d",&a[i][j]);
                    b[i][j] = a[i][j];
                    if(!a[i][j]){
                        x[i] = 1;
                        y[j] = 1;
                    }
                }
            }
            bool ff = true;
            for(i = 1; i <= n; ++i){
                for(j = 1; j <= m; ++j){
                    if(x[i] || y[j]){   // nice cood
                        a[i][j] = 0;
                    } else{
                        ff = false;
                    }
                }
            }
            bool falg = false;
            for(i = 1; i <= n; ++i){
                for(j = 1; j <= m; ++j){
                    if(a[i][j]) falg = true;
                }
            }
            if(ff)  falg = true;
            for(i = 1; i <= n; ++i){
                for(j = 1; j <= m; ++j){
                    bool kk = false;
                    if(b[i][j]){
                        for(int ii = 1; ii <= n; ++ii){
                            if(a[ii][j])    kk = true;
                        }
                        for(int jj = 1; jj <= m; ++jj){
                            if(a[i][jj])    kk = true;
                        }
                        if(!kk){
                            falg = false;
                        }
                    }
                }
            }
    
            if(falg){
                printf("YES
    ");
                for(i = 1; i <= n; ++i){
                    for(j = 1; j < m; ++j){
                        printf("%d ",a[i][j]);
                    }
                    printf("%d
    ",a[i][m]);
                }
            }
            else{
                printf("NO
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    unity, trail renderer gone black on iOS
    sql date时间加减几天几小时
    mysql sql获取上条插入id,update影响行数
    cmd获取系统时间
    js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange
    javascript 动态改变onclick事件
    限制input输入类型(多种方法实现)
    在VMware Workstation11虚拟机上安装黑苹果
    mysql存储过程procedure
    我常用的在线取色器
  • 原文地址:https://www.cnblogs.com/wushuaiyi/p/4115914.html
Copyright © 2011-2022 走看看