| 比赛 | 
    板子大赛 | 
    评测结果 | 
    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;
}