1359:围成面积

围成面积

技巧:将整个二维数组再围一圈!

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<queue>
 4 using namespace std;
 5 const int N=12;
 6 int ans,a[N][N],t[]={-1,1,0,0,0,0,-1,1};
 7 queue<int> q;
 8 void cnt(){
 9     while(!q.empty()){
10         int x=q.front(),y;
11         q.pop();
12         y=q.front();
13         q.pop();
14         a[x][y]=1;
15         for(int i=0;i<4;i++){
16             int nx=x+t[i],ny=y+t[i+4];
17             if(nx>=0&&nx<N&&ny>=0&&ny<N&&!a[nx][ny]){
18                 q.push(nx);q.push(ny);
19             }    
20         }
21     }
22 }
23 int main(){
24     for(int i=1;i<=10;i++)
25         for(int j=1;j<=10;j++)
26             scanf("%d",&a[i][j]);
27     q.push(0);q.push(0);
28     cnt();
29     for(int i=1;i<=10;i++)
30         for(int j=1;j<=10;j++)
31             if(!a[i][j])ans++;
32     cout<<ans;
33     return 0;
34 }

 

posted @ 2021-08-30 11:37  Rekord  阅读(379)  评论(0编辑  收藏  举报