ACM习题集

DFS _ Block Tower

写出来真是大快人心

这道题,本来想看题解,偷懒研究别人代码的,但是搜到的代码都太丑了。。。(看不懂)于是只好自己纯手撸一个出来。不过自己写的感觉真是太棒了。

这道题的原题叫 BlockTower 来自 CF( 传送门 ),根据题意,我的解题思路是先将所有的空地盖上蓝房子,然后开始 dfs,除了进入 dfs 的点不变外,其他的蓝房子全部拆掉改成红房子。其实感觉有一种染色法的样子。最后有几个用‘#’完全划分出来的区块,就有几个蓝房子。需要注意的是,输出要按搜索的顺序进行。所以用 dfs 比较合适。

其中入队建 Node 的时候,可以直接在结构体种建函数(Node(char _op,int _x,int _y):op(_op),x(_x),y(_y){})。比这里使用的方式简单。