本题是2026牛客寒假算法基础集训营2的I题
题目链接:https://ac.nowcoder.com/acm/contest/120562/I
题目大意:给定一个n X m的矩阵,里面的每一个数是由0/1组成的,让我们判断每一个格子是否能让我们以它为终点,然后从不同与这个点的另一点出发,使得我们路径上的数字组成是一个回文数。
题目分析:只要1的数字大于1,那么总能找到离得最近的两个1,使其作为头和尾,同时中间部分全是0,所以这种情况必定是回文数。同理0作为头和尾也是一样。
所以直接看代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
void solve(){
ll n,m;cin>>n>>m;
ll a=0,b=0;
vector<vector<char>> v(n,vector<char>(m));
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
char ch;cin>>ch;
if(ch=='1') a++;
else b++;
v[i][j]=ch;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(v[i][j]=='1'){
if(a>1) cout<<"Y";
else cout<<"N";
}
else{
if(b>1) cout<<"Y";
else cout<<"N";
}
}
cout<<"\n";
}
}
int main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int T=1;
cin>>T;
while(T--){
solve();
}
}
注意这题卡endl

京公网安备 11010502036488号