问题标题: 酷町堂:3741 求大佬就救命吧

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

给一个M*N的矩阵,矩阵元素的值为0或者1,要求重置矩阵,若某列存在为1的元素,则将整列元素重置为1,输出重置后的矩阵。

输入描述 Input Description

输入两个正整数M,N,表示这个矩阵有M行N列。
接下来是M行N列只包含0和1的矩阵。

输出描述 Output Description

输出重置后的矩阵。

样例输入 Sample Input

4 4 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0

样例输出 Sample Output

0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0

数据范围及提示 Data Size & Hint

1 ≤M,N≤ 10

汪宇航在2021-04-25 15:55:49追加了内容

@李瑞曦 @曹博扬 

@赵逸凡 @董宇昊 

@陈曦 @汪恺恒 

@张帆 @王泽宇

汪宇航在2021-04-25 16:56:23追加了内容

@

汪宇航在2021-04-25 17:07:07追加了内容

#include <bits/stdc++.h>

using namespace std;

int main(){

int x,y;

bool a[101][101];

int b[101];

cin>>x>>y;

for(int i=1;i<=x;i++){

for(int j=1;j<=y;j++){

cin>>a[i][j];

if(a[i][j]==1)b[i]=j;

}

}

for(int i=1;i<=x;i++){

for(int j=1;j<=y;j++){

if(b[i]!=0)

a[i][b[i]]=1;

cout<<a[i][j]<<' ';

}

cout<<endl;

}

return 0;

}

...


0
已采纳
赵睿泽
赵睿泽
资深守护
资深守护

I am coming again.

核心代码:

for(int i=1;i<=n;i++){

    for(int j=1;j<=m;j++){

        if(a[i][j]){

           for(int k=1;k<=n;k++){

                a[k][j]=1;

            }

        }

    }

}

 

0
谭迪元
谭迪元
资深光能
资深光能

我帮不了你(看不懂题目)

谭迪元在2021-04-25 19:02:09追加了内容

董宇昊退问答了

0
陈正朔
陈正朔
初级光能
初级光能

so easy

核心重置部分

for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
            if(a[i][j]==1){
                for(int k=1;k<=m;k++){
                    a[k][j]=1;
                }
            }
        }
    }

 

我要回答