编程算法题-图的搜索算法

国际象棋中,“兵”冲到底线可以升变为“后”,这样棋盘上就可能有多个“后”,假设棋盘上白方有5个“后”,应该放置在那些格子上,才能吃掉8* 8棋盘上黑方的任何一个子?编写程序,输出放置方法。
如果是n* n 的棋盘,最少安放多少个皇后就可以攻击整个棋盘?