トピック住所:
https://nanti.jisuanke.com/t/T1141
牛ベッシー計画とソフトの新しい春の草を楽しみます。牧草のR行とC列の草の新しいディストリビューション。これは、牧草の数を計算したいと考えています。
牧草マップでは、各草又は単一の「#」、または隣接する2つの「#」の共通のエッジがあります。牧場のマップを考えると、どのように多くの茂みを計算します。
例えば、6つのマップ牧場の次の5つの行を考えます
ランチ有する5つの最初の行の一つ、二つのスパン、三行、3行目の1、2列目の4行目では4又は5のスパン、5行目の最後のいずれかのGe草。
入力形式
最初の行は、単一のスペースで区切られた2つの整数のRとCを含有します。
牧場マップを記述するCの文字の次のRライン、。文字だけ「#」または「」二種類。
出力フォーマット
出力草の数を表す整数。
コード:
する#include <stdio.hの> INT [ 100 ] [ 100 ]。 INT のmain(){ int型X、Y。 scanf関数(" %dの%のD "、およびX&Y); GETCHAR()。 用(int型 I = 0 ; I <X; iが++ ){ ため(INT J = 0 ; J <yであり、j ++ ){ チャー P = GETCHAR()。 もし(P == ' ' ) [i] [j]が = 0 ; 他 [I] [J] = 1 。 } GETCHAR()。 } int型の和= 0 。 int型 JQ = 0 ; 以下のために(int型 i = 0 ; I <X; I ++ ){ ための(int型 J = 0 ; J <yであり、j ++ ){ 場合([I] [J] == 1 ){ 合計 ++ 。 もし([I]、[J + 1 ] == 1 || [I + 1 ] [j] == 1){ JQ ++ 。 } } } } のprintf(" %dの"、和- JQ)。 リターン 0 ; }
アイテムの難易度は、少しの平均を感じての考え方に大きなされないが、最初の文字は、ハードカウント再帰はとても直接、多くの問題だろう直接の後、01の行列、便利な操作の配列に変換されます。
合計# - #権及び隣接草#番号=番号のそれぞれ下記