我承认我有点懒(洛谷已经发过题解了,但我发誓要坚持写博客) 这道题坑了我3天…… 首先一看就与染色问题类似,果断BFS(写DFS炸了) 先将最上面(靠近水)的一行全部扔进队列里,做一遍BFS 再对最下面(远离水)的一行进行扫描,如果发现有点搜索不到,输出0并统计个数退出(很好说明:如果全部修建都无法完成那么使用更少的点是不可能的) 如果可以,就进行第二遍BFS 把第一行每个点分别扔进队列,搜索出它在最下面的可以供水的区间 等等,为什么是区间? 这个很好证明,有多位大佬已经详细证明,我简单说一下…