目錄題目傳送門
剛開始理解錯題意了,以為除了主對角線上之外都不能有1.後來發現只要主對角線上可以都是1就是合法的了。實際上的題意就是讓你判斷\(n\)行與\(n\)列是否可以都匹配上,這樣就是乙個比較簡單的二分圖匹配,如果第\((i,j)\)位置上為1,就說明第\(i\)行與第\(j\)行能夠匹配,然後跑一遍匈牙利就行了。
#include using namespace std;
typedef long long ll;
bool finish_read;
templateinline void read(t &x)while(isdigit(ch))x=x*10+ch-'0',ch=getchar();x*=f;finish_read=1;}
templateinline void print(t x)
templateinline void writeln(t x)
templateinline void write(t x)
/****************=header template**********====*/
const int maxn=205;
int t,n,tot;
int a[maxn][maxn];
struct edge e[maxn*maxn];
int head[maxn],belong[maxn],vis[maxn];
/****************===define area***************=*/
void addedge(int u,int v)
void init()
bool solve(int u)
} return 0;
}int main()
} int ans=0;
for(int i=1;i<=n;i++)
if(ans==n) puts("yes");
else puts("no");
} return 0;
}
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...
bzoj 1059 矩陣遊戲
題解 很玄學的問題 因為不同行或者不同列的格仔,交換仍然不同行或者不同列 所以把問題轉化為從黑格仔裡選n個,它們的橫縱座標都不相同 然後二分圖匹配 兩個子集分別是橫座標和縱座標,如果求出的最大匹配為n,則成立,否則不成立 1 include2 include3 define maxn 410 4in...