BZOJ 1059 [ZJOI2007]矩阵游戏
来源:互联网 发布:java统计页面访问量 编辑:程序博客网 时间:2024/06/05 06:04
二分图匹配
可以证明,如果存在n个黑格,且他们互不同行互不同列,就一定有解。相反如果有解,就一定有这样的n个黑格。
于是找完美匹配
#include<cstdio>#include<cstring>#define N 205using namespace std;struct edge{int next,to;}e[N*N];int ecnt=1;int last[N], mat[N], n;bool vis[N];void add(int a, int b){ e[++ecnt]=(edge){last[a],b}; last[a]=ecnt;}bool find(int x){ for(int i = last[x]; i; i=e[i].next) { int y=e[i].to; if(vis[y])continue; vis[y]=1; if(!mat[y] || find(mat[y])) { mat[y]=x; return true; } } return false;}int Hungary(){ int ans=0; for(int i = 1; i <= n; i++) { memset(vis,0,sizeof(vis)); if(find(i)) ans++; } return ans;}void clear(){ ecnt=0; memset(last,0,sizeof(last)); memset(mat,0,sizeof(mat));}int main(){ int T; scanf("%d",&T); while(T--) { clear(); scanf("%d",&n); for(int i = 1, x; i <= n; i++) { for(int j = 1; j <= n; j++) { scanf("%d",&x); if(x) add(i,j); } } if(Hungary()==n)printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- bzoj 1059: [ZJOI2007]矩阵游戏
- BZOJ 1059 [ZJOI2007]矩阵游戏
- BZOJ 1059 [ZJOI2007]矩阵游戏
- BZOJ 1059 [ZJOI2007]矩阵游戏
- bzoj 1059: [ZJOI2007]矩阵游戏
- [BZOJ]1059: [ZJOI2007]矩阵游戏
- BZOJ 1059: [ZJOI2007]矩阵游戏
- [bzoj] 1059: [ZJOI2007]矩阵游戏
- 最大匹配 BZOJ 1059: [ZJOI2007]矩阵游戏
- bzoj 1059: [ZJOI2007]矩阵游戏 网络流
- BZOJ P1059[ZJOI2007]矩阵游戏
- 1059: [ZJOI2007]矩阵游戏
- 1059: [ZJOI2007]矩阵游戏
- 1059: [ZJOI2007]矩阵游戏
- 1059: [ZJOI2007]矩阵游戏
- 1059: [ZJOI2007]矩阵游戏
- BZOJ大视野 1059: [ZJOI2007]矩阵游戏 解题报告
- bzoj 1059: [ZJOI2007]矩阵游戏|二分图匹配|匈牙利算法
- qduoj LC的课后辅导
- adt-bundlee-windows-x86-x64之安卓开发环境一键打包下载
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
- spoj694 Distinct Substrings
- 接口
- BZOJ 1059 [ZJOI2007]矩阵游戏
- POJ 3662 二分+Dijkstra
- nyoj 14 会场安排问题 贪心
- CSS3animation,transform,translate,translation的区别
- C语言实现---九九乘法表
- java项目常见数据库连接池的比较
- BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊
- Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
- POJ 3661 DP