bzoj 1059 矩陣遊戲

2022-06-04 16:21:10 字數 515 閱讀 5559

題解:很玄學的問題……

因為不同行或者不同列的格仔,交換仍然不同行或者不同列

所以把問題轉化為從黑格仔裡選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...