題目描述
小島面積
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對應的所有分解組合,按照每個分解中的最小整數從小到大輸出,每個分解...