题解 | #比赛安排(PDF题面存放于本题)#

比赛安排(PDF题面存放于本题)

https://ac.nowcoder.com/acm/contest/120562/A

解题思路:
注意矩阵中仅含有零或一,不要用搜索去写,再结合回文串以及给的事例就会发现,只有当零或一的个数为一的时候才会输出N,所以只需要在输入时统计零和一的个数,特判找到有N的情况
注意事项:
输出卡endl(真的恶心)
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
    int t;
    cin>>t;
    for(int l=1;l<=t;l++){
        int n,m,sum1=0,sum2=0;
        cin>>n>>m;
        string s[n+5];
        for(int i=1;i<=n;i++)
            cin>>s[i];
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++){
                if(s[i][j-1]=='0') sum1++;
                else sum2++;
            }
        if(sum1==1){
            for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++){
                    if(s[i][j-1]!='0') cout<<'Y';
                    else cout<<'N';
                }
                cout<<"\n";
            }
        }
        else if(sum2==1){
            for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++){
                    if(s[i][j-1]!='1') cout<<'Y';
                    else cout<<'N';
                }
                cout<<"\n";
            }
        }
        else{
            for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++)
                    cout<<'Y';
                cout<<"\n";
            }
        }
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务