洛谷P2071 座位安排

2022-05-23 08:33:12 字數 552 閱讀 9350

座位安排

二分圖,人為左部點,座位為右部點,由於每個座位可以坐兩個人,所以把每個座位拆成兩個點\(i\)和\(i+n\),如果乙個人想去這個座位則向這兩個點連邊,跑匈牙利即可。

#include#define n (100000+5)

using namespace std;

inline int read()

while(isdigit(c))

return cnt*f;

}int n,match[n],x,y,nxt[n],first[n],to[n],tot,ans,res;

bool vis[n];

void add(int x,int y)

int find(int u)

} }return 0;

}int hungary()

return ans;

}int main()

int res=hungary();

printf("%d",res);

return 0;

}

luogu P2071 座位安排

已知車上有n排座位,有n 2個人參加省賽,每排座位只能坐兩人,且每個人都有自己想坐的排數si1和si2,問最多使多少人坐到自己想坐的位置。題目 並木有坑人,這題就是乙個二分圖的最大匹配,一邊放人,一邊放座位的排數,注意對於乙個座位是可以承載2個人的,所以乙個人i應該可以在作為si1和si2中分別有2...

luogu P2071 座位安排

這個題可以被分為兩部分 1.匈牙利演算法 板子 2.鄰接表存圖 好像這不能稱為第二部分 每一排能坐兩個人,那就把一排拆成兩個點,用匈牙利演算法求最大匹配 每個人都只想坐兩排,說明每個人只會連四條邊 如果不會匈牙利的請點這裡 includeusing namespace std const int n...

數學 AOJ 614 座位安排

description 宣講會上有連續編號為1.n的n個座位,每個座位只能坐乙個人,有n個人,學校有m個不同專業,如果相鄰座位的同學的專業相同,就會發生悄悄話現象,求有多少種情況可能發生悄悄話現象。不一定每個專業都有人來 input 輸入包括多組資料,以檔案 eof 結束。每組測試資料兩個整數n 1...