bzoj1433[ZJOI2009]假期的宿舍

Description

Input

Output

Sample Input

1
3
1 1 0
0 1 0
0 1 1
1 0 0
1 0 0

Sample Output

ˆ ˆ

HINT

对于30% 的数据满足1 ≤ n ≤ 12。
对于100% 的数据满足1 ≤ n ≤ 50,1 ≤ T ≤ 20。

网络流

每个学生拆点

原点向每个在校的连边(就是有床的)

汇点向每个需要床的连边(就是不在校的或者在校且没有回家的)

如果i、j认识,互相连边

然后dinic。没了

要注意i可以睡自己的床

#include
#include
#define S 0
#define T 1001
#define inf 0x7fffffff
struct edge{
	int to,next,v;
}e[5001];
int head[5001],h[5001];
int q[20001];
int n,cnt,ans;
inline int min(int a,int b){return a'9')ch=getchar();
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x;
}
bool school[1001];
inline bool bfs()
{
	memset(h,-1,sizeof(h));
	int t=0,w=1;
	q[1]=S;h[S]=0;
	while (t


转载于:https://www.cnblogs.com/zhber/p/4036089.html

你可能感兴趣的:(bzoj1433[ZJOI2009]假期的宿舍)