題解:很玄學的問題……
因為不同行或者不同列的格仔,交換仍然不同行或者不同列
所以把問題轉化為從黑格仔裡選n個,它們的橫縱座標都不相同
然後二分圖匹配……兩個子集分別是橫座標和縱座標,如果求出的最大匹配為n,則成立,否則不成立
1 #include2 #include3#define maxn 410
4int
n,cnt,match[maxn],map[maxn][maxn],ans;
5bool
check[maxn];
6bool hungary(intu)7
18}19}
20return
false;21
}22intmain()
2340
if(ans==n)printf("
yes\n");
41else printf("
no\n");
42}43return0;
44 }
bzoj1059 矩陣遊戲
time limit 10 sec memory limit 162 mb submit 4731 solved 2255 submit status discuss 矩陣的任意兩行,交換這兩行 即交換對應格仔的顏色 列交換操作 選擇矩陣的任意行列,交換這兩列 即交換 對應格仔的顏色 遊戲的目標,即...
bzoj1059 矩陣遊戲
二分圖匹配經典題。因為每一行的點不管如何交換也不會不在同一行,同理,同一列的點無論如何交換都仍然在這一列。那麼也就是說要選則一些點使得滿足題意,那麼就可以去跑匹配了。若a i j 是黑色的,那麼就從i行向j列連邊,最後跑匹配。如果用邊表的話一定要記得清空計數器。不然就炸了。1 include 2 i...
BZOJ1059 矩陣遊戲
目錄題目傳送門 剛開始理解錯題意了,以為除了主對角線上之外都不能有 後來發現只要主對角線上可以都是 就是合法的了。實際上的題意就是讓你判斷 n 行與 n 列是否可以都匹配上,這樣就是乙個比較簡單的二分圖匹配,如果第 i,j 位置上為 就說明第 i 行與第 j 行能夠匹配,然後跑一遍匈牙利就行了。in...