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

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

很容易想到去吧棋盘模型转为二分图。

发现是一个类似行列匹配的问题。
进一步,如果每一个行都可以找到一个列与之配对的话,一定可以通过交换满足要求。
直接dinic求二分图最大匹配即可。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 110000#define eps 1e-7#define inf 1e9+7#define ll long longusing namespace std;inline int read(){ char ch=0; int x=0,flag=1; while(!isdigit(ch)){ch=getchar();if(ch=='-')flag=-1;} while(isdigit(ch)){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();} return x*flag;}struct edge{ int to,nxt,w;}e[N*2];int num,head[N];inline void add(int x,int y,int z){ e[++num]=(edge){y,head[x],z};head[x]=num; e[++num]=(edge){x,head[y],0};head[y]=num;}queue
q;int n,m,s,t,dep[N];bool bfs(){ for(int i=0;i<=t;i++)dep[i]=0; dep[s]=1;q.push(s); while(!q.empty()) { int x=q.front(); q.pop(); for(int i=head[x];i!=-1;i=e[i].nxt) { int to=e[i].to; if(!dep[to]&&e[i].w) { dep[to]=dep[x]+1; q.push(to); } } } return dep[t];}int dfs(int x,int flow){ if(x==t)return flow; for(int i=head[x];i!=-1;i=e[i].nxt) { int to=e[i].to; if(dep[to]==dep[x]+1&&e[i].w) { int w=dfs(to,min(flow,e[i].w)); if(w) { e[i].w-=w; e[i^1].w+=w; return w; } } } return 0;}void work(){ int n=read(),i,j,w,maxflow=0; num=-1;memset(head,-1,sizeof(head)); for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(read())add(i,j+n,1); s=2*n+1;t=2*n+2; for(i=1;i<=n;i++) { add(s,i,1); add(i+n,t,1); } while(bfs()) { do { w=dfs(s,inf); maxflow+=w; }while(w); } if(maxflow==n)printf("Yes\n"); else printf("No\n"); return;}int main(){ int t=read(); for(int i=1;i<=t;i++)work(); return 0;}

转载于:https://www.cnblogs.com/Creed-qwq/p/10068810.html

你可能感兴趣的文章
attribute和property的区别
查看>>
python爬取百度搜索图片
查看>>
排序之希尔排序(shell sort)
查看>>
Linux学习之CentOS(二十一)--Linux系统启动详解
查看>>
Hadoop的体系结构之MapReduce的体系结构
查看>>
python学习(四)字符串学习
查看>>
互联网协议入门(一)
查看>>
Python自动化开发从浅入深-语言基础(常用模块)
查看>>
eclipse中properties文件编码问题
查看>>
JavaIO学习
查看>>
PHP+MYSQL网站SQL Injection攻防
查看>>
Movie
查看>>
【hdu5794】A Simple Chess
查看>>
jquery动态粒子
查看>>
时间的计算
查看>>
数据库 视图 事务 备份还原 分离附加
查看>>
[Leetcode] valid palindrome 验证回文
查看>>
什么是Ajax无刷新技术?
查看>>
【BZOJ4944】【NOI2017】泳池 概率DP 常系数线性递推 特征多项式 多项式取模
查看>>
vector的应用
查看>>