BZOJ1059(ZJOI2007)[矩阵游戏]--二分图最大匹配
来源:互联网 发布:mmd的动作数据从哪里下 编辑:程序博客网 时间:2024/05/16 23:57
【链接】
bzoj1059
【题目大意】
给你一个只包含0和1字符的矩阵,每次可以对该矩阵进行两种操作:行交换操作:选择
矩阵的任意两行,交换这两行。列交换操作:选择矩阵的任意行列,交换这两列。游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线)上的格子均为1。
【解题报告】
这题其实可以发现对于每行每列必须有一个点在对角线上,所以就是经典的二分图最大匹配了。
#include<cstdio>#include<cstring>using namespace std;const int maxn=205,maxm=40005;int T,n,tot,who[maxn],lnk[maxn],son[maxm],nxt[maxm];bool vis[maxn];inline int Read(){ int res=0; char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar(); while (ch>='0'&&ch<='9') res=res*10+ch-48,ch=getchar(); return res;}void Add(int x,int y){ son[++tot]=y; nxt[tot]=lnk[x]; lnk[x]=tot;}bool Find(int x){ if (vis[x]) return 0; vis[x]=1; for (int j=lnk[x]; j; j=nxt[j]) if (!who[son[j]]||Find(who[son[j]])) {who[son[j]]=x; return 1;} return 0;}void Work(){ memset(lnk,0,sizeof(lnk)); memset(who,0,sizeof(who)); n=Read(); tot=0; for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) { int x=Read(); if (x==1) Add(i,j); } for (int i=1; i<=n; i++) { memset(vis,0,sizeof(vis)); if (!Find(i)) {printf("No\n"); return;} } printf("Yes\n");}int main(){ freopen("1059.in","r",stdin); freopen("1059.out","w",stdout); T=Read(); tot=0; for (int i=1; i<=T; i++) Work(); return 0;}
阅读全文
0 0
- [二分图最大匹配] BZOJ1059: [ZJOI2007]矩阵游戏
- BZOJ1059(ZJOI2007)[矩阵游戏]--二分图最大匹配
- [BZOJ1059][ZJOI2007][二分图匹配]矩阵游戏
- [BZOJ1059]ZJOI2007矩阵游戏|二分图匹配
- 【bzoj1059】 ZJOI2007矩阵游戏 二分图匹配
- 【bzoj1059】【zjoi2007】【矩阵游戏】【二分图匹配】
- 【BZOJ1059】[ZJOI2007]矩阵游戏【二分图匹配】
- [BZOJ1059] [ZJOI2007] 矩阵游戏 - 二分图匹配
- 【BZOJ1059】[ZJOI2007][二分图匹配]矩阵游戏
- bzoj1059: [ZJOI2007]矩阵游戏 二分图匹配
- [BZOJ1059][ZJOI2007]矩阵游戏(二分图匹配)
- 二分图匹配——BZOJ1059/Luogu1129 [ZJOI2007]矩阵游戏
- [BZOJ1059][ZJOI2007]矩阵游戏(二分图匹配)
- 【bzoj1059 ZJOI2007】矩阵游戏(二分图匹配)
- bzoj1059: [ZJOI2007]矩阵游戏(二分图匹配)
- bzoj1059 [ZJOI2007]矩阵游戏(二分图完美匹配)
- bzoj1059: [ZJOI2007]矩阵游戏 二分图
- bzoj1059: [ZJOI2007]矩阵游戏(网络流 或 二分图匹配)[省选计划系列]
- QT 基本图形绘制
- SQL Server中的事务与锁
- 多线程的一些概念
- NDK 开发中,各种指令集的坑,arm64
- arcgis api for javascript创建webmap
- BZOJ1059(ZJOI2007)[矩阵游戏]--二分图最大匹配
- httpwatch使用说明
- mysql查询优化
- Zbar和OpenCV识别条形码,比halcon中find_bar_code好用
- Android圆形饼图绘制(当饼图占比很小时描述文字的分开绘制)
- 【利用Python进行数据分析——经验篇4】将多张DataFrame表写入到同一个Excel的不同sheet中
- ASP.NET中使用jqGrid的完整实例及总结
- Assetbundle创建与加载
- app打包上传遇到的问题