【bzoj1433】[ZJOI2009]假期的宿舍 二分图匹配
来源:互联网 发布:游戏数据分析 合服 编辑:程序博客网 时间:2024/05/23 11:52
总之,按照要求连边就对了。裸的最大匹配。
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<iostream>#include<algorithm>#define maxn 110using namespace std;int a[maxn][maxn],lk[maxn];int b[maxn],c[maxn];bool vis[maxn];int n,m,cnt,ans,T;bool find(int x){for (int i=1;i<=n;i++) if (a[x][i] && !vis[i]) { vis[i]=1; if (!lk[i] || find(lk[i])) { lk[i]=x; return 1; } }return 0;}int main(){scanf("%d",&T);while (T--){memset(a,0,sizeof(a));memset(lk,0,sizeof(lk));scanf("%d",&n);cnt=ans=0;for (int i=1;i<=n;i++) scanf("%d",&b[i]);for (int i=1;i<=n;i++) {scanf("%d",&c[i]);if (!b[i] || (b[i] && !c[i])) cnt++;}for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++) { int x; scanf("%d",&x); if (x && ((b[i] && !c[i]) || !b[i]) && b[j]) a[i][j]=1; } if (b[i] && !c[i]) a[i][i]=1;}for (int i=1;i<=n;i++){memset(vis,0,sizeof(vis));if (find(i)) ans++;}if (ans==cnt) printf("^_^\n"); else printf("T_T\n");}return 0;}
0 0
- 【bzoj1433】[ZJOI2009]假期的宿舍 二分图匹配
- [二分图最大匹配] BZOJ1433: [ZJOI2009]假期的宿舍
- [bzoj1433][ZJOI2009]假期的宿舍 二分图最大匹配
- BZOJ1433 / ZJOI2009 假期的宿舍【网络流/二分图匹配】
- bzoj1433: [ZJOI2009]假期的宿舍(二分图匹配)
- [bzoj1433][二分图匹配]假期的宿舍
- 二分图匹配——BZOJ1433/Luogu2055 [ZJOI2009]假期的宿舍
- bzoj1433 [ZJOI2009]假期的宿舍(最大流/二分图最大匹配)
- 【二分图匹配】【ZJOI2009】假期的宿舍
- bzoj1433[ZJOI2009]假期的宿舍
- BZOJ1433 [ZJOI2009]假期的宿舍
- 【bzoj1433】[ZJOI2009]假期的宿舍
- BZOJ1433: [ZJOI2009]假期的宿舍
- bzoj1433 [ZJOI2009]假期的宿舍
- bzoj1433[ZJOI2009] 假期的宿舍
- bzoj1433 [ZJOI2009]假期的宿舍
- bzoj1433[ZJOI2009]假期的宿舍
- bzoj1433: [ZJOI2009]假期的宿舍
- 解决Android 应用方法数不能超过65K的问题
- C++ string TBD
- Linux下Maven的安装与使用
- select学习和实现原理
- 三层登录窗体
- 【bzoj1433】[ZJOI2009]假期的宿舍 二分图匹配
- Redis常用命令
- mac OS X自带PHP环境,没有freetype的解决办法
- msfvenom参数
- 开启adb su权限
- 使用《Playground》来调试代码
- ListView实下拉刷新的大概思路
- 中间人攻击 -- Cookie喷发
- iOS 保持界面流畅的技巧