[二分图最大匹配] BZOJ1433: [ZJOI2009]假期的宿舍
来源:互联网 发布:java 中文件带点 编辑:程序博客网 时间:2024/05/16 09:35
题意
题解
大水题,二分图匹配。对与每个人向他能睡的床建边即可。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=105, maxe=505;int n,m,_test,res[maxn];int fir[maxn],nxt[maxe],son[maxe],tot;bool sta1[maxn],sta2[maxn],g[maxn][maxn],vis[maxn];void add(int x,int y){ son[++tot]=y; nxt[tot]=fir[x]; fir[x]=tot; }int find(int x){ for(int j=fir[x];j;j=nxt[j]) if(!vis[son[j]]){ vis[son[j]]=true; if(!res[son[j]]||find(res[son[j]])){ res[son[j]]=x; return true; } } return false;}int main(){ freopen("bzoj1433.in","r",stdin); freopen("bzoj1433.out","w",stdout); scanf("%d",&_test); while(_test--){ memset(fir,0,sizeof(fir)); tot=0; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&sta1[i]); for(int i=1;i<=n;i++) scanf("%d",&sta2[i]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&g[i][j]); m=n; for(int i=1;i<=n;i++){ if(!sta1[i]){ for(int j=1;j<=n;j++) if(g[i][j]&&sta1[j]) add(i,j+n); } else{ if(!sta2[i]){ for(int j=1;j<=n;j++) if(g[i][j]&&sta1[j]) add(i,j+n); add(i,i+n); } else m--; } } memset(res,0,sizeof(res)); int ans=0; for(int i=1;i<=n;i++){ memset(vis,0,sizeof(vis)); ans+=find(i); } if(ans==m) printf("^_^\n"); else printf("T_T\n"); } return 0;}
0 0
- [二分图最大匹配] BZOJ1433: [ZJOI2009]假期的宿舍
- [bzoj1433][ZJOI2009]假期的宿舍 二分图最大匹配
- 【bzoj1433】[ZJOI2009]假期的宿舍 二分图匹配
- BZOJ1433 / ZJOI2009 假期的宿舍【网络流/二分图匹配】
- bzoj1433: [ZJOI2009]假期的宿舍(二分图匹配)
- bzoj1433 [ZJOI2009]假期的宿舍(最大流/二分图最大匹配)
- [bzoj1433][二分图匹配]假期的宿舍
- 二分图匹配——BZOJ1433/Luogu2055 [ZJOI2009]假期的宿舍
- BZOJ 1433: [ZJOI2009]假期的宿舍 二分图最大匹配
- 【二分图匹配】【ZJOI2009】假期的宿舍
- bzoj1433[ZJOI2009]假期的宿舍
- BZOJ1433 [ZJOI2009]假期的宿舍
- 【bzoj1433】[ZJOI2009]假期的宿舍
- BZOJ1433: [ZJOI2009]假期的宿舍
- bzoj1433 [ZJOI2009]假期的宿舍
- bzoj1433[ZJOI2009] 假期的宿舍
- bzoj1433 [ZJOI2009]假期的宿舍
- bzoj1433[ZJOI2009]假期的宿舍
- 数据结构实验之二叉树五:层序遍历*(层序遍历要学好
- 文章标题
- DCM姿态估计算法分析
- 201170215 night js
- 蓝桥杯ALGO-2最大最小公倍数
- [二分图最大匹配] BZOJ1433: [ZJOI2009]假期的宿舍
- Activity的生命周期
- 位运算trick
- IE中CSS3不完全兼容方案
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 【bzoj1901】带修改的区间第k大 主席树+树状数组
- 使用git命令行提交代码到github上报错(一)
- 文章标题
- Oracle sql分页查询(高效)