c++ codeforces 327D block tower

不明白为什么两个点就算是连通块也不代表它们相邻啊,为什么一个连通块只要第一个是B就可以呢?
题意 给你一个城市的地图 你可以在地图上的 . 上建房子#上不能建房子 红房子可以装200个人 蓝房子可以装100个人 只有相邻位置有蓝房子时才能建红房子 你也可以拆掉已经建成的房子 拆掉后该点又变成 .
这题想到了就很容易了 因为没有限制要步
数最少 可以先把左右的地方都建成蓝房子 然后就变成求连通块的题了 每个蓝房子连通块内依次拆掉建红房子 最终就只剩下一个蓝房子了