乙個骨牌可以佔據兩個位置,這兩個位置的橫縱座標和一定是乙個奇數乙個偶數
奇偶分類建圖是解決棋盤問題的乙個重要方法
從奇數或偶數點向四周的點連邊跑最大匹配即可
這裡把二維的矩陣放到一維裡處理
#include
#define a 10010
using
namespace std;
int n, t, a, b, g[a]
, ans;
bool vis[a]
, w[a]
;vector<
int> v[a]
;bool
check
(int x)}}
return
false;}
intmain
(int argc,
char
const
*ar**)
for(
int i =
1; i <= t; i++
)scanf
("%d%d"
,&a,
&b), w[n *
(a -1)
+ b]=1
;for
(int i =
1; i <= n * n; i++
) cout << ans << endl;
}
棋盤覆蓋問題
source code include include include using namespace std const int n 1024 int board n n count void cover int sx,int sy,int cx,int cy,int size,int cx1,i...
棋盤覆蓋演算法
在乙個2k 2k個方格組成的棋盤中,恰有乙個方格與其他方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋盤,顯然特殊方格在棋盤上出現的位置有4k種情形。因而對任何k 0,有4k種不同的特殊棋盤。特殊方格必位於4個較小子棋盤之一中,其餘3個子棋盤中無特殊方格。為了將這3個無特殊方格的子棋盤轉化為特殊...
棋盤覆蓋問題
問題 在乙個2k 2k k 0 個方格組成的棋盤中,恰有乙個方格與其他方格不同,稱該方格為特殊方格。顯然,特殊方格在棋盤中可能出現的位置有4k種,因而有4k種不同的棋盤,圖4.10 a 所示是k 2時16種棋盤中的乙個。棋盤覆蓋問題 chess cover problem 要求用圖4.10 b 所示...