人員分組,一共有n個人,輸入每個人認識的人名單,若a的名單裡有b或者b的名單裡有a,則a和b互相認識,若a認識b,b認識c,則通過介紹,a也會認識c,請你把所有人員進行分組,每組中的人都能夠互相認識,且分組數最小。
思路:兩次遍歷,一次用逆鄰接表,一次用鄰接表,分組數取兩次的最小值。
#include#include#include#includeusing namespace std;
void dfs(vector>&ma,int *visited,int *visited2,int pos,bool&flag);
for(int i=0;i>n;
vector>ma(n);
vector>ma2(n);
for(int i=0;i>t;
while(t)
}cout
}
人員分派問題
人員分派問題 工作人員x1,x2,x3.xn去做n件工作y1,y2,y3,yn,每人適合做其中一件或幾件,問能否每人都有乙份適合的工作?如果不能,最多幾人可以有適合的工作?分析 n個人完成n件工作,如果每人都有乙份合適的工作,即1個人完成一件工作,1對 1 可裝化為找最大對集問題。匈牙利演算法 詳見...
分組Top N 問題
今天面試,面試官給了這樣乙個場景 有兩張表,一張表存放車隊id,班組id,司機id 另一種表存放司機id,運營時間,運營里程 要查詢出7月份每個車隊每個班組裡的 top 3 這就要用到row number 函式 首先按需求建兩張表 create table demo of topn car comp...
Oracle 分組排序問題
a b兩個表,分別存的是使用者的收入和支出 a表 id date user income fid fdate fuser fincome 1 2018 8 1 張三 11.00 2 2018 8 2 張三 12.00 3 2018 8 2 李四 21.00 4 2018 8 3 張三 13.00 5...