传送门

解题思路

二分图匹配,出现1后让这一行和这一列连边,然后跑一遍匈牙利,判断最后的ans是否等于n。刚开始想复杂了,这样连了后还拆点反着连。。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>using namespace std;
const int MAXN = 605;
const int MAXM = MAXN*MAXN;inline int rd(){int x=0,f=1;char ch=getchar();while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();}while(isdigit(ch))  {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}return x*f;
}int T,n,a[MAXN][MAXN],ans;
int match[MAXM<<1];
int head[MAXM<<1],cnt,k;
int to[MAXM<<1],nxt[MAXM<<1];
int vis[MAXM<<1],num;inline void add(int bg,int ed){to[++cnt]=ed,nxt[cnt]=head[bg],head[bg]=cnt;
}inline bool dfs(int x){for(register int i=head[x];i;i=nxt[i]){int u=to[i];if(vis[u]==num) continue;vis[u]=num;if(!match[u] || dfs(match[u])) {match[u]=x;return true;}}return false;
}int main(){T=rd();while(T--){memset(head,0,sizeof(head));memset(match,0,sizeof(match));n=rd();ans=0;for(register int i=1;i<=n;i++)for(register int j=1;j<=n;j++){ scanf("%d",&a[i][j]);if(a[i][j]==1) k++,add(i,j);} for(register int i=1;i<=k;i++){num++;if(dfs(i)) ans++;}if(ans==n) puts("Yes");else puts("No");}return 0;
}

转载于:https://www.cnblogs.com/sdfzsyq/p/9676917.html

BZOJ 1059: [ZJOI2007]矩阵游戏相关推荐

  1. bzoj 1059: [ZJOI2007]矩阵游戏(二分匹配)

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4762  Solved: 2269 [Submit][St ...

  2. [BZOJ]1059: [ZJOI2007]矩阵游戏

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行 ...

  3. BZOJ 1059 [ZJOI2007]矩阵游戏

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1059 题意:给定一个n×nn \times n的01矩阵,可以任意交换两行或两列的数字,问是否 ...

  4. 【BZOJ - 1059】矩阵游戏(二分图匹配,建图,最小边覆盖)

    题干: 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作:行交换 ...

  5. 1059: [ZJOI2007]矩阵游戏 (匈牙利)

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两 ...

  6. 黑暗爆炸 #1059. [ZJOI2007]矩阵游戏

    传送门 思路:这道题能用二分图我是完全没有想到的,后来去补了下最大二分图的最大匹配,然后看题解才勉强推了这样的思路 一行的每个元素看成二分图的一边,一列的元素看成二分图的另一边. 如果某个点是1那么就 ...

  7. bzoj1059: [ZJOI2007]矩阵游戏

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4748  Solved: 2264 [Submit][St ...

  8. 洛谷 P1129 [ZJOI2007]矩阵游戏 解题报告

    P1129 [ZJOI2007]矩阵游戏 题目描述 小\(Q\)是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个\(N*N\)黑白方阵进行(如同国际象棋一般 ...

  9. 洛谷P1129 [ZJOI2007] 矩阵游戏 题解

    洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...

最新文章

  1. python上海培训哪里比较好-上海python培训哪家好 Python需要多久学会
  2. Py之smtplib:smtplib(aiosmtplib)的简介、安装、使用方法之详细攻略
  3. VTK:可视化之Camera
  4. 干货集锦:200+生信范文、30+款软件、12类图片素材PPT,今年的SCI稳了!(附下载)...
  5. 通过负载均衡器+域名实现容灾切换-(9)GSLB典型产品-F5简介
  6. onsyscommand
  7. php7.0不出结合项,帝国CMS结合项提示“您来自的链接不存在”
  8. lnmp+lamp编译后,编译参数查看
  9. 面试了一个6年的Java,竟然什么都不会!
  10. 排序算法之四 归并排序(C++版本)
  11. application配置和profile隔离配置(转)
  12. 扩展BindingList,防止增加、删除项时自动更新界面而不出现“跨线程操作界面控件 corss thread operation”异常...
  13. CentOS7源码安装Python3
  14. Surface pro3电源管理
  15. array_column()函数用法
  16. springboot支付宝APP支付与退款
  17. 跨境电商多商户系统怎么选
  18. 微信开发 --- 调用微信上传图片接口,并保存到自己的服务器
  19. R语言实现偏最小二乘分析(PLS)
  20. CRMEB v3.1分销设计思路

热门文章

  1. jQuery 图表插件 jqChart 使用
  2. java putall实现_java putAll与addAll的小区别
  3. c语言五个整数排列,刚学c语言,老师让用if编一个五个数字从大到小的排序,有那个大神能帮我,谢谢啦...
  4. eclipse启动mysql报错日志在哪儿_Eclipse启动报错,解决办法
  5. CentOS 7 搭建 Ceph 集群(nautilus 版本)
  6. linux开启和关闭防火墙
  7. VisualStudio中C++程序输出一闪而过的解决方案
  8. Unity3D基础21:UI简介
  9. bzoj 1627: [Usaco2007 Dec]穿越泥地(BFS)
  10. HDU 5933 2016CCPC杭州 A: ArcSoft's Office Rearrangement