2023年北航機試 2 小島面積

2021-09-24 19:14:01 字數 1096 閱讀 4042

題目描述

小島面積

1 1 1 1 1 1

1 1 0 0 0 1

1 0 0 0 1 0

1 1 0 1 1 1

0 1 0 1 0 0

1 1 1 1 1 1

上面矩陣的中的1代表海岸線,0代表小島。求小島面積(即被1中包圍的0的個數)。注意:僅求這樣的0,該0所在行中被兩個1包圍,該0所在列中被兩個1包圍。

輸入

第一行輸入乙個整數n,表示輸入方陣的維數

輸入乙個n維方陣

輸出:

小島面積

樣例輸入:

61 1 1 1 1 1

1 1 0 0 0 1

1 0 0 0 1 0

1 1 0 1 1 1

0 1 0 1 0 0

1 1 1 1 1 1

樣例輸出:

8解題思路

理解題目本身意思,可以發現對於矩陣中的0是否屬於內陸,取決於該0所處的行和列上,如果0滿足,如下條件則o為內陸,否則不是。

所以,解題思路就是,遍歷所有的行和列,記錄該行或列,最左面和最右面和最上面和最下面1的座標,然後當遇到0,判斷是否處於記錄的值的中間,是,則是內陸,面積加1,否則不加。

#includeint a[100][100];

int row[100][2];//row[i][0]是指第i行的第乙個1的縱座標,row[i][1]是指第i行的最後乙個1的縱座標

int col[100][2];

int main()

} for(j=0;j=0;j--)

} }//判斷0的位置是否符合題意

for(i=0;irow[i][0]&&jcol[j][0]&&i=0;r--)

}for(c=j+1;c=0;c--)

}if(t==4)

}} }

printf("%d\n",sum);

return 0;

}

北航機試12年

問題描述 統計關鍵字出現位置 輸入 一行標準 c 語言 字元個數小於 300 統計出該字串中關鍵字的 if,while,for 所 在的位置,按照關鍵字出現的順序依次輸出。注意雙引號內的不需要統計。輸入 一行標準 c 語言 字元個數小於 300 輸出 關鍵字 if,while,for 對應的位置,按...

北航2023年機試

1.從輸入的字串中,統計空格,回車,tab出現的次數 include include includeint main str i 0 int len strlen str space 0,enter 0,tab 0 for i 0 i3.多項式相加 include includetypedef st...

北航計算機機試2012

vc fushic18 1.分解整數 某些整數能分解成若干個連續整數的和的形式,例如 15 1 2 3 4 5 15 4 5 6 15 7 8 某些整數不能分解為連續整數的和,例如 16 輸入 乙個整數n n 10000 輸出 整數n對應的所有分解組合,按照每個分解中的最小整數從小到大輸出,每個分解...