良心的資料範圍,肯定就是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 的床。而實際情況可能非常複雜,有的人...