比赛 板子大赛 评测结果 AWWAWWWWWWWWWWWWWWWW
题目名称 黑白图像 最终得分 10
用户昵称 IMZ 运行时间 0.125 s
代码语言 C++ 内存使用 4.21 MiB
提交时间 2025-01-22 14:40:39
显示代码纯文本
#include<bits/stdc++.h>//再思考一下 
using namespace std;
int a[710][710];
char s[710][710];
int main(){
 freopen("common.in","r",stdin);
 freopen("common.out","w",stdout);
   int n;
   scanf("%d",&n);
   for(int i=1;i<=n;i++){
       scanf("%s",s[i]+1);
   }
   for(int i=1;i<=n;i++){
       for(int j=1;j<=n;j++){
           if(s[i][j]=='1'){
               a[i][j]=1;
           }
           else{
               a[i][j]=0;
           }
       }
   }
   int cnt=1;
   for(int i=1;i<=n;i++){
       for(int j=1;j<=n;j++){
           if(a[i][j]!=0){
               if(a[i][j]==1){
                   cnt++;
                   a[i][j]=cnt;
               }
               if(a[i][j+1]==1){
                   a[i][j+1]=a[i][j];
               }
               if(a[i+1][j+1]==1){
                   a[i+1][j+1]=a[i][j];
               }
               if(a[i+1][j]==1){
                   a[i+1][j]=a[i][j];
               }
               if(a[i][j-1]==1){
                   a[i][j-1]=a[i][j];
               }
               if(a[i+1][j-1]==1){
                   a[i+1][j-1]=a[i][j];
               }
           }
       }
   }
//   for(int i=1;i<=n;i++){
//       for(int j=1;j<=n;j++){
//           printf("%d ",a[i][j]);
//       }
//       printf("\n");
//   }
   printf("%d",cnt-1);
    return 0;
}