题解 | #比赛安排(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";
}
}
}
}
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";
}
}
}
}