博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1129 [ZJOI2007]矩阵游戏 二分图匹配
阅读量:5147 次
发布时间:2019-06-13

本文共 1656 字,大约阅读时间需要 5 分钟。

思路:脑子+二分图匹配 

提交:1次(课上讲过)

题解:

发现:如果符合题意,那么行和列一定是一一匹配的(必要条件),所以最大匹配必须是$n$。

同时我们发现,一定可以通过交换行列的方式,将(看起来)有交错的最大匹配,转换成符合题意的状态。

所以最大匹配是$n$即为判断依据。

 

#include
#include
#include
#include
#define R register intusing namespace std;#define ull unsigned long long#define ll long long#define pause (for(R i=1;i<=10000000000;++i))#define IN freopen("NOIPAK++.in","r",stdin)#define OUT freopen("out.out","w",stdout)namespace Fread { static char B[1<<15],*S=B,*D=B;#ifndef JACK #define getchar() (S==D&&(D=(S=B)+fread(B,1,1<<15,stdin),S==D)?EOF:*S++)#endif inline int g() { R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-1:fix; do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret*fix; } inline bool isempty(const char& ch) {
return ch<=36||ch>=127;} inline void gs(char* s) {register char ch; while(isempty(ch=getchar())); do *s++=ch; while(!isempty(ch=getchar()));}}using Fread::g; using Fread::gs;const int N=210;int vis[N],pre[N],t,ans,n,tim; bool e[N][N];inline bool dfs(int u) { for(R v=1;v<=n;++v) if(e[u][v]&&vis[v]!=tim) { vis[v]=tim; if(!pre[v]||dfs(pre[v])) {pre[v]=u; return true ;} } return false;}signed main() {#ifdef JACK#endif t=g(); while(t--) { ans=0,tim=0; memset(vis,0,sizeof(vis)),memset(pre,0,sizeof(pre)),memset(e,false,sizeof(e)); n=g(); for(R i=1;i<=n;++i) for(R j=1;j<=n;++j) e[i][j]=g(); for(R i=1;i<=n;++i) ++tim,ans+=dfs(i); if(ans==n) printf("Yes\n"); else printf("No\n"); }}

2019.07.18

转载于:https://www.cnblogs.com/Jackpei/p/11209915.html

你可能感兴趣的文章
最近面试问题汇总
查看>>
ORM版学员管理系统3
查看>>
修改安卓虚拟机系统镜像
查看>>
windows 2003 Server平台Delphi程序不支持直接调用webservice
查看>>
电子书下载:Professional ASP.NET Design Patterns
查看>>
random 产生一个随机数的方法
查看>>
RST_n的问题
查看>>
欢迎来我的#百度相册#时光轴,坐上时光机,与我一起穿梭时空!
查看>>
------结对作业代码复审-----
查看>>
ASP.NET 获得当前网页名字
查看>>
windows pear 安装
查看>>
22Spring基于配置文件的方式配置AOP
查看>>
H5页面在微信端的分享
查看>>
python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器...
查看>>
例6-5
查看>>
eclipse变量名自动补全
查看>>
一个数据库操作类(包含弹出对话框函数,也可自定义弹出的脚本内容)
查看>>
HIVE文件
查看>>
转——调试寄存器 原理与使用:DR0-DR7
查看>>
C# MP3文件属性读取
查看>>