码迷,mamicode.com
首页 > 其他好文 > 详细

假期的宿舍——二分图模板一个

时间:2017-10-01 00:23:20      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:main   bool   题目   二分图   没有   stream   ons   onclick   pre   

  因为题目并没有给出自己认识自己的数据,所以需要手动从每一个学生向他的床上连一条边,找这个错误找了一个小时。

技术分享
 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<vector>
 6 using namespace std;
 7 const int N=77;
 8 int n,p,beds,res,bed[N],mx[N],my[N];
 9 bool st[N],gone[N],gr[N][N],vis[N];
10 
11 bool dfs(int x){
12     for(int i=1;i<=beds;i++)
13         if(gr[x][i]&&!vis[i]){
14             vis[i]=true;
15             if(my[i]==0||dfs(my[i])){
16                 mx[x]=i;
17                 my[i]=x;
18                 return true;
19             }
20         }
21     return false;
22 }
23 
24 int main(){
25     int T;cin>>T;
26     while(T--){
27         memset(st,0,sizeof st);memset(gone,0,sizeof gone);memset(gr,0,sizeof gr);
28         memset(bed,0,sizeof bed);memset(mx,0,sizeof mx);memset(my,0,sizeof my);
29         cin>>n;
30         beds=res=0;p=n;
31         for(int i=1;i<=n;i++){
32             cin>>st[i];
33             if(st[i])bed[i]=++beds;
34         }
35         for(int i=1;i<=n;i++){
36             cin>>gone[i];
37             if(gone[i]==1&&st[i])p--;
38             else gone[i]=0;
39         }
40         
41         for(int i=1;i<=n;i++){
42             if(st[i])gr[i][bed[i]]=true;
43             for(int j=1;j<=n;j++){
44                 bool x;cin>>x;
45                 if(x){
46                     if(st[j])gr[i][bed[j]]=true;
47                     if(st[i])gr[j][bed[i]]=true;
48                 }
49             }
50         }
51         
52         for(int i=1;i<=n;i++)
53             if(!(gone[i]&&st[i])&&mx[i]==0){
54                 memset(vis,0,sizeof vis);
55                 res+=dfs(i);
56             }
57         
58         cout<<(res>=p?"^_^":"T_T")<<endl;
59     }
60     return 0;
61 }
Method_01

  洛谷 AJAX 32ms

假期的宿舍——二分图模板一个

标签:main   bool   题目   二分图   没有   stream   ons   onclick   pre   

原文地址:http://www.cnblogs.com/duskfire/p/7616387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!