題意:給你一個n*m的棋盤, 上面有一些洞洞,要求放置若干1*2的木板, 洞洞位置不能放置, 其他位置要全部覆蓋, 任意一個格子不能同時覆蓋兩塊木板, 求能否完全覆蓋。
思路:二分圖匹配。 相鄰兩個格子, 行數 + 列數 一定是一個奇數一個偶數, 由此將格子分成兩派, 匹配即可。 可以用最大流, 但是匈牙利算法更快, 而且代碼短。
細節參見代碼:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include