#P1356. 课程ZD.孤立的棋子.填空题

课程ZD.孤立的棋子.填空题

题目描述

在 n×n 的方格棋盘上,有一些格子里有棋子。如果一个棋子的上下左右没有其它棋子,就称是孤立的,问棋盘上有多少孤立的棋子?

输入格式

第一行 1 个正整数:N ,范围在 [1,20]。

下面有 N 行,每行 N 个整数,要么是 0 ,要么是 1 。0 表示没有棋子,1 表示有棋子。

输出格式

一个整数。

样例

4
0 0 1 0
1 0 1 0
0 1 0 1
0 0 0 0
3

程序填空

#include<bits/stdc++.h>
using namespace std;
int a[22][22],n;
int diff[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};
int main()
{
	scanf("%d",&n);
	int i,j,k,ans=0;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			scanf("%d",&a[i][j]);
			
	int ii,jj;
	bool ok;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			if(a[i][j]==0)  //说明了这个位置没有棋子
				填空(1);

			ok = true;
			for(k=填空(2);k<填空(3);k++)  //看看4个方向是否有棋子
			{
				ii = i + diff[k][0];
				jj = 填空(4) + 填空(5);
				if(a[ii][jj]==1) //有棋子
				{
					ok = 填空(6);
					break;
				}
			}
			if(填空(7))
					ans++;
		}
		
	}

	
	printf("%d",ans);
	
	return 0;
}

填空(1):{{ input(1) }}

填空(2):{{ input(2) }}

填空(3):{{ input(3) }}

填空(4):{{ input(4) }}

填空(5):{{ input(5) }}

填空(6):{{ input(6) }}

填空(7):{{ input(7) }}