64分蒟蒻求助

P1162 填涂颜色

蒟蒻的得分升到80了 ``` #include<bits/stdc++.h> using namespace std; bool vis; int b[100][100]; int main() { int n,ex=0,ey=0; cin>>n; int a[100][100]; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cin>>a[i][j]; } for(int i=1;i<=n;i++) { for(int j=n;j>=0;j--) { if(a[i][j]==1) break; b[i][j]=2; } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j--) { if(a[i][j]==1) break; b[i][j]=2; } } for(int i=1;i<=n;i++) { vis=0; for(int j=1;j<=n;j++) { if(a[j][i]==1) vis=1; else if(vis==1&&a[j][i]==0&&b[j][i]!=2) b[j][i]=1; else if(vis==1&&a[j][i]==1) vis=0; int bb=j; while(bb<n+1) { if(vis==1&&a[bb][i]==1) break; if(bb==n&&vis==1) { for(int i1=1;i1<=n;i1++) { for(int j1=1;j1<n;j1++) { if(b[i1][j1]!=2) b[i1][j1]=0; } } } bb++; } for(int maxn=1;maxn<=n;maxn++) { for(int minn=1;minn<=n;minn++) { if(b[minn][maxn]==1) a[minn][maxn]=2; } } } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; } return 0; } ```
by 云深时见d码 @ 2020-12-02 21:35:40


|