棋盘中棋子覆盖 并连通的算法问题(高分)
(说明:不是下棋的问题,只是用棋盘和棋子表示; 不一定写可运行程序,伪代码或自然语言均可,所用数据结构和解决过程一定要明确;给分根据解答时间和解答的有效性)
在一个网格状的棋盘里(像围棋一样的棋盘),可以放入白子和黑子,棋子只能放在交叉点上;每个棋子与相邻四个位置上的棋子连通。
现在棋盘上有一些白子,给出白子位置的集合,Swhite={(x1,y1),(x2,y2),...(xn,yn)},
现在要放入黑子,黑子可以放在与白子相同的位置,也可以放在空白点上,每个黑子放入后,拿掉黑子所在位置和相邻的四个点上放置的白子。
要求的问题:如何放置最小的黑棋数来拿掉所有的白棋,并且所有黑棋连通。