題目大意:
算了太長了還是不講了吧,想看題的戳這裡
對於這道題,我們可以用網路流做(不懂網路流的戳這裡),1~n記錄需要床的人,與原點連一條邊,n+1~2*n記錄每個學生的床,與匯點連一條邊,然後跑一次最大流,原點擁有的流量為需要床的人的數量,假如全部流量都可以流到匯點,說明存在可行方案,思路就是這麼簡單,上**吧:
#include #include int n,m,t,len;
struct node;
node e[10010];
int first[110];
bool a[110],b[110];
int tou,wei;
void buildroad(int x,int y,int z)
int h[110],q[110],st,ed;
bool bfs()
}st++;
}if(h[wei]==0)return false;
else return true;
}int minn(int x,int y)
}if(tt==0)h[x]=0;
return tt;
}int main()
for(int i=1;i<=n;i++)
int m=n;//記錄需要床的人數
memset(first,0,sizeof(first));len=1;//記得初始化
tou=2*n+1,wei=tou+1;
for(int i=1;i<=n;i++)}}
int ans=0;
while(bfs())ans+=dfs(tou,m);//標準網路流
if(ans!=m)printf("t_t\n");
else printf("^_^\n");
}}
ZJOI2009 假期的宿舍
題目描述 學校放假了 有些同學回家了,而有些同學則有以前的好朋友來探訪,那麼住宿就是乙個問題。比如 a 和 b 都是學校的學生,a 要回家,而 c 來看b,c 與 a 不認識。我們假設每個人只能睡和自己直接認識的人的床。那麼乙個解決方案就是 b 睡 a 的床而 c 睡 b 的床。而實際情況可能非常複...
ZJOI2009 假期的宿舍
這道題分析下就會發現是乙個二分圖匹配。將在校 包括來校訪友 和床單構成圖,判斷最大匹配數是否為總在校人數即可。這裡用的是 km 演算法。1 include 2 3using namespace std 45 define re register 6 define rep i,a,b for re i...
ZJOI2009 假期的宿舍
題目 洛谷p2055 bzoj1433 codevs2347。題目大意 有n個人,有些人是學生,有些人是來看學生的 不是學生 學生有床,而非學生沒有 廢話!有些學生回家,有些學生晚上住校,來看學生的人要住在學校裡。現在有一些認識的關係,規定每個要在學校睡覺的人只會睡在自己認識的人的床上,問能否使所有...