1. 程式人生 > >島嶼周長 acmoj——簡單

島嶼周長 acmoj——簡單

題目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:朱天宇