标题: 
Muddy Fields（二分图最小点覆盖） 
标签: 
图结构
二分图
二分图匹配

详情: 
Rain has pummeled the cows field, a rectangular grid of R rows and C columns (1 <= R <= 50, 1 <= C <= 50). While good for the grass, the rain makes some patches of bare earth quite muddy. The cows, being meticulous grazers, do not want to get their hooves dirty while they eat.
To prevent those muddy hooves, Farmer John will place a number of wooden boards over the muddy parts of the cows field. Each of the boards is 1 unit wide, and can be any length long. Each board must be aligned parallel to one of the sides of the field.
Farmer John wishes to minimize the number of boards needed to cover the muddy spots, some of which might require more than one board to cover. The boards may not cover any grass and deprive the cows of grazing area but they can overlap each other.
Compute the minimum number of boards FJ requires to cover all the mud in the field.
农夫John的养牛场，是一个R 行C 列的矩形，一场大雨后，养牛场低洼的地方都有了积水。John 的牛都很娇贵的，他们吃草的时候，不想把他们的蹄子给弄脏了。为了不让牛儿们把它们的蹄子弄脏，John 决定把有水的地方铺上木板。他的木板是宽度为1，长度没有限制的。
他想用最少数目的木板把所有有水的低洼处给覆盖上，前提是木板不能覆盖草地，但是可以重叠。 
输入格式: 
* Line 1: Two spaceseparated integers: R and C
* Lines 2..R+1: Each line contains a string of C characters, with '*' representing a muddy patch, and '.' representing a grassy patch. No spaces are present. 
输出格式: 
Line 1: A single integer representing the number of boards FJ needs. 
样例: 


解释
OUTPUT DETAILS:
Boards 1, 2, 3 and 4 are placed as follows: 1.2. .333 444. ..2. Board 2 overlaps boards 3 and 4.

