pywinauto客戶端自動化---模擬鍵盤操作
阿新 • • 發佈:2020-07-22
二分圖概念
二分圖:
二分圖又稱作二部圖,是圖論中的一種特殊模型。 設G=(V,E)是一個無向圖,如果頂點V可分割為兩個互不相交的子集(A,B),並且圖中的每條邊(i,j)所關聯的兩個頂點i和j分別屬於這兩個不同的頂點集(i in A,j in B),則稱圖G為一個二分圖。
簡單的說,一個圖被分成了兩部分,相同的部分沒有邊,那這個圖就是二分圖,二分圖是特殊的圖。
最大二分圖匹配
最常用的是匈牙利演算法,實際上是一種貪心的策略,儘量使每一個點存在匹配。
程式碼
const int maxn=1005; int n,m,t; int mch[maxn],vis[maxn]; vector<int >g[maxn]; bool dfs(int u,int tag) { if(vis[u]==tag)return false;//應該是避免繞圈 vis[u]=tag; for(int i=0;i<g[u].size();i++) { int v=g[u][i]; if(mch[v]==0||dfs(mch[v],tag))//如果這個點未被匹配或者原先匹配的點可以找到別的匹配點 { mch[v]=u; return true; } } return false; } main(void) { n=read(); m=read(); t=read(); while(t--) { int u=read(); int v=read(); g[u].push_back(v); } int ans=0; for(int i=1;i<=n;i++) { if(dfs(i,i)) { ans++; } } cout<<ans; }