洛谷2055 假期的宿舍(網路流)

2021-08-30 02:41:42 字數 992 閱讀 1431

良心的資料範圍,肯定就是o(

因為題目中給出了許多關係,最後詢問是否能全部解決,那麼就相當於給了匹配關係,詢問最大匹配數與總數之間的關係,所以網路流的解法就出來了。

對於每個非在校學生和要回家的學生,肯定就不需要考慮他們了,將他們與s連容量為1的邊限制最多1個人,對於每個住校學生,肯定需要床,那麼就將自己的床與t連容量為1的邊,因為自己可以睡自己的床,那麼和自己的床連邊。再讀入人和人的關係,如果為1就將這個人和那個人的床連容量為1的邊。

最後跑一遍最大流詢問最大匹配數,如果最大匹配數小於住校學生數,那麼就不可以,否則可以。

ps:記得初始化。。。。。。

#includeusing namespace std;

const int maxn=201;

const int maxm=1e4+10;

const int inf=0x3f3f3f3f;

int n,m,cnt,s,t,total;

int head[maxn],cur[maxn],depth[maxn];

int nxt[maxm],to[maxm],w[maxm];

int stu[maxn],hom[maxn];

int read()

void add(int x,int y,int z)

void add(int x,int y,int z)

bool bfs()

} }return depth[t]!=0;

}int dfs(int u,int flow)

} }return 0;

}int dinic()

return ans;

}int main()

for(int i=1;i<=n;++i)

}if(dinic()==total)

puts("^_^");

else

puts("t_t");

} return 0;

}

洛谷 2055 假期的宿舍

好久不更新啦2333本著更新也沒人看的原則我來更新一下 題目描述 學校放假了 有些同學回家了,而有些同學則有以前的好朋友來探訪,那麼住宿就是乙個問題。比如 a 和 b 都是學校的學生,a 要回家,而 c 來看b,c 與 a 不認識。我們假設每個人只能睡和自己直接認識的人的床。那麼乙個解決方案就是 b...

假期的宿舍 洛谷2055 網路流

學校放假了。有些同學回家了,而有些同學則有以前的好朋友來探訪,那麼住宿就是乙個問題。比如 a 和 b 都是學校的學生,a 要回家,而 c 來看b,c 與 a 不認識。我們假設每個人只能睡和自己直接認識的人的床。那麼乙個解決方案就是 b 睡 a 的床而 c 睡 b 的床。而實際情況可能非常複雜,有的人...

匈牙利 洛谷 P2055 假期的宿舍

學校放假了 有些同學回家了,而有些同學則有以前的好朋友來探訪,那麼住宿就是乙個問題。比如 a 和 b 都是學校的學生,a 要回家,而 c 來看b,c 與 a 不認識。我們假設每個人只能睡和自己直接認識的人的床。那麼乙個解決方案就是 b 睡 a 的床而 c 睡 b 的床。而實際情況可能非常複雜,有的人...