島嶼周長 acmoj——簡單
阿新 • • 發佈:2018-12-10
題目:https://acmoj.cn/JudgeOnline/problem.php?cid=1024&pid=4
注.本文主要作為自己的學習筆記。
題目描述
要得到這座島嶼還需要先計算出島嶼的周長,請你幫幫他算出來,讓他得到這座島嶼。
輸入格式:
第一行輸入兩個正整數n,m,表示地圖的長和寬。
接下來的n行每行m個數字(0或1);0代表水,1代表陸地。
輸出格式:
島的周長。
輸入樣例1
4 4
0100
1110
0100
1100
輸出樣例1
16
題目型別: 簡單、圖的入門
解題思路:
搜尋的入門應用,非常簡單,還用不到遞迴搜尋函式,注意程式碼中對一個格子四周的搜尋。
程式碼:
#include <iostream>
using namespace std;
int main ()
{
char a[1010][1010];
int n,i,j,m,k,x,y,num=0;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
a[i][j]=0;
for(i=0;i<n;i++)
scanf("%s",a[i]);
for(i=0;i<n;i++)
for( j=0;j<m;j++)
{
if(a[i][j]=='1')
{
if(a[i+1][j]=='0'||i+1==n)num++;
if(a[i-1][j]=='0'||i-1<0)num++;
if(a[i][j+1]=='0'||j+1==n)num++;
if(a[i][j-1]=='0'||j-1<0)num++;
}
}
printf("%d\n",num);
return 0;
}
PS :本部落格屬於中國石油大學勝利學院ACM協會所有!
By:朱天宇