暴力思路,代码如下
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
template <class T> inline void read(T &x) {
x=0;
T f=1;
char ch=getchar();
while(!isdigit(ch)) {
if(ch=='-')f=-1;
ch=getchar();
}
while(isdigit(ch)) {
x=(x<<3)+(x<<1)+(ch^48);
ch=getchar();
}
x*=f;
}
int n,a[30][30],ans[30][30];
int count1(int i) {
for(int j=0; j<n; j++)
if(a[i][j]==1)return j;
return 0;
}
int count2(int i) {
for(int j=n-1; j>=0; j--)
if(a[i][j]==1)return j;
return 0;
}
int main() {
read(n);
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
read(a[i][j]);
for(int i=0; i<n; i++) {
if(count1(i)&&count2(i)&&count1(i)!=count2(i))
for(int j=count1(i)+1; j<count2(i); j++)
if(a[i][j]==0)ans[i][j]=2;
}
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
if(ans[i][j]==2)cout<<2<<' ';
else cout<<a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
自测结果:
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 2 2 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1 很绝望,大佬看看。QWQ…………