洛谷:P1129 [ZJOI2007] 矩阵游戏(二分图最大匹配)
洛谷:矩阵游戏
建图方式:对于 i 行 j 列的1点,建一条 i 连向 j 的边即可,最后跑一个二分图匹配,只有匹配数为 n 才能说明有解
#include<bits/stdc++.h>
#include<unordered_set>
#include<unordered_map>
#define mem(a,b) memset(a,b,sizeof a)
#define cinios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
#define sca scanf
#define pri printf
#define ul (u << 1)
#define ur (u << 1 | 1)
#define fx first
#define fy second
//#pragma GCC optimize(2)
//[博客地址](https://blog.csdn.net/weixin_51797626?t=1)
using namespace std;typedef long long ll;
typedef pair<int, int> PII;const int N = 210, M = 40010, MM = 3000010;
int INF = 0x3f3f3f3f, mod = 100003;
ll LNF = 0x3f3f3f3f3f3f3f3f;
int n, m, k, T, S, D;
int h[N], e[M], ne[M], idx;
int match[N << 1];
bool st[N << 1];void add(int a, int b) {e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}bool find(int x) { //标准匈牙利for (int i = h[x]; ~i; i = ne[i]) {int j = e[i];if (st[j])continue;st[j] = true;if (!match[j] || find(match[j])) {match[j] = x;return true;}}return false;
}int main() {cinios;cin >> T;while (T--){cin >> n;mem(h, -1);idx = 0;for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++) {cin >> k;if (k)add(i, n + j);//行对列建边//虽然二分图是无向图问题,但只用建单向边即可,枚举其中一个集合}mem(match, 0);int mat = 0;for (int i = 1; i <= n; i++) {mem(st, 0);if (find(i))mat++;}if (mat == n)cout << "Yes";//匹配数必须为 nelse cout << "No";cout << '\n';}return 0;
}
洛谷:P1129 [ZJOI2007] 矩阵游戏(二分图最大匹配)相关推荐
- 洛谷P1129: [ZJOI2007]矩阵游戏(二分图最大匹配)
https://www.luogu.org/problemnew/show/P1129 题目描述 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个N×N ...
- 洛谷P1129 [ZJOI2007] 矩阵游戏 题解
洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...
- 洛谷 P1129 [ZJOI2007]矩阵游戏 解题报告
P1129 [ZJOI2007]矩阵游戏 题目描述 小\(Q\)是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个\(N*N\)黑白方阵进行(如同国际象棋一般 ...
- 洛谷:P1129 [ZJOI2007] 矩阵游戏
题目链接:P1129 [ZJOI2007] 矩阵游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 解题思路: 首先不知道最大匹配数概念的可以看看这篇博客: (5条消息) 二分图及 ...
- P1129 [ZJOI2007] 矩阵游戏
文章目录 R e s u l t Result Result H y p e r l i n k Hyperlink Hyperlink D e s c r i p t i o n Descripti ...
- 【bzoj3240 洛谷P1397】矩阵游戏[NOI2013](矩阵乘法+卡常)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3240 这道题其实有普通快速幂+费马小定理的解法--然而我太弱了,一开始只想到了矩阵乘法的 ...
- P1129 [ZJOI2007]矩阵游戏 (匈牙利算法)
传送门 题目描述 小 Q 是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个n×n \timesn×n黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次 ...
- 洛谷P7515:矩阵游戏(差分约束)
解析 如果没有元素均要在 [0,1e6][0,1e6][0,1e6] 的条件,可以很容易的构造出一个合法解. 那么我们就要通过调整得到的解,使所有数都在合法范围内. 注意到,每次给某一行/列依次+1, ...
- 洛谷 P1129 矩阵游戏
洛谷 P1129 矩阵游戏 题目链接 题目描述 小 Q 是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个 n×n 黑白方阵进行(如同国际象棋一般,只是颜色是 ...
最新文章
- hdu2722 简单最短路,处理好输入就行
- 【算法】K-Means聚类算法(k-平均或k-均值)
- protobuf入门教程(六):导入定义(import)
- mysql show 存储过程_mysql 存储过程 show errors
- 【英语学习】【WOTD】resurrection 释义/词源/示例
- 在系统可编程器件一般使用计算机,eda技术与vhdl复习练习题.docx
- POJ 3278(Catch That Cow)
- 极限编程(xp),iso国际标准化组织
- worldwind java 教程,如何脱机使用World Wind Java SDK
- 大数据平台应用 17 个关键技术处理
- idea卸载不干净怎么办_卸载删除面具(Magisk)后,手机不开机怎么办
- python wav转pcm
- ceph (luminous 版) primary affinity 管理
- 讯为4412蜂鸣器驱动实现
- 使用java发送qq邮件注意问题
- php模板修改教程,商业模板修改高级教程
- 顺序表的建立、查找、插入、删除
- ubuntu20.04 noetic 安装 Astra Pro 驱动
- python win10 桌面_利用Python批量提取Win10锁屏壁纸实战教程
- vi 查看最顶部_vi命令示例大全
热门文章
- 【Unity】制作简单的启动、菜单和游戏界面
- 谷俊丽:基于大数据的深度学习
- PMS(PackageManagerService)原理简单介绍,启动过程源码简单解析
- 怎么查看计算机办公软件版本的,怎么看电脑office是哪个版本
- STP BPDU报文
- 论文笔记之Understanding and Diagnosing Visual Tracking Systems
- minigui源码学习
- c语言设置字体时调用对话框,第1课用C语言函数编写对话框之一直接实践
- ROS学习|Behavoir Tree(BT树)--c++实现
- vue 子组件与父组件运行的顺序