Counting sheep
Time Limit: 2000/1000 MS (Java/others) memory limit: 32768/32768 K (Java/others) total submission (s): 2060 accepted submission (s): 1359
Problem descriptiona while ago I had trouble sleeping. I used to lie awake, staring at the ceiling, for hours and hours. then one day my grandmother suggested I tried counting sheep after I 'd gone to bed. as always when my grandmother suggests things, I decided to try it out. the only problem was, there were no sheep around to be counted when I went to bed. Creative as I am, that wasn' t going to stop me. I sat down and wrote a computer program that made a grid of characters, where # represents a sheep, while. is grass (or whatever you like, just not sheep ). to make the counting a little more interesting, I also decided I wanted to count flocks of sheep instead of single sheep. two sheep are in the same flock if they share a common side (Up, down, right or left ). also, if sheep a is in the same flock as sheep B, and sheep B is in the same flock as sheep C, then sheeps A and C are in the same flock.
Now, I 've got a new problem. though counting these sheep actually helps me fall asleep, I find that it is extremely boring. to solve this, I 've decided I need another computer program that does the counting for me. then I'll be able to just start both these programs before I go to bed, and I'll sleep tight until the morning without any disturbances. I need you to write this program for me. inputthe first line of input contains a single number t, the number of test cases to follow.
Each test case begins with a line containing two numbers, H and W, the height and width of the sheep grid. then follows H lines, each containing W characters (either # Or .), describing that part of the grid. outputfor each test case, output a line containing a single number, the amount of sheep flock son that grid according to the rules stated in the Problem description.
Notes and constraints 0 <t <= 100 0 1 # include <iostream> 2 using namespace STD; 3 4 int arr [4] [2] = {, 0,-1 }; // search for 5 char sheep [101] [101] in four directions; 6 int T, I, j, sum, H, W; 7 8 // search for flock 9 void BFS (int A, int B) 10 {11 if (sheep [a] [B] = '. ') return; // encounter '. 'Return 12 if (a <0 | B <0 | A> = H | B> = W) return; // The array returns 13 sheep [a] [B] = '. '; // record, changing the flock found each time '. ', skip 14 for (INT I = 0; I <4; I ++) 15 BFS (a + arr [I] [0] next time, B + arr [I] [1]); // After finding each goat, search for 16} 17 18 int main () 19 {20 CIN> T in four directions; 21 While (t --) 22 {23 CIN> H> W; 24 for (I = 0; I