当前位置:网站首页>【SSL集训DAY3】控制棋盘【二分图匹配】
【SSL集训DAY3】控制棋盘【二分图匹配】
2022-08-09 22:35:00 【VL——MOESR】

思路:
我们浅推一波可以发现,每个格子看成一个点,向它能走到的点连边,然后就变成了最小覆盖问题
跑个匈牙利不成问题
c o d e code code
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int dx[8] = {
1, 1, 2, 2, -1, -1, -2, -2 };
const int dy[8] = {
2, -2, 1, -1, 2, -2, 1, -1 };
int n, m, btot, wtot;
int a[25][25], color[25][25], link[5010], dian[25][25];
bool v[100010], ma[5010][5010];
bool find(int x) {
for (int i = 1; i <= wtot; i++) {
if (ma[x][i] == 1 && !v[i]) {
v[i] = 1;
int q = link[i];
link[i] = x;
if (q == 0 || find(q))
return 1;
link[i] = q;
}
}
return 0;
}
int main() {
scanf("%d%d", &n, &m);
int x, y, p = 0;
while (cin >> x >> y) {
a[x][y] = 1;
p++;
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
if (a[i][j])
continue;
if ((i % 2 == 1 && j % 2 == 1) || (i % 2 == 0 && j % 2 == 0))
color[i][j] = 1, dian[i][j] = ++ btot;
else dian[i][j] = ++ wtot;
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if (!a[i][j]) {
for (int k = 0; k < 8; k++) {
int xx = i + dx[k], yy = j + dy[k];
if (xx < 1 || xx > n || yy < 1 || yy > m || a[xx][yy])
continue;
if (color[i][j] == 1)
ma[dian[i][j]][dian[xx][yy]] = 1;
else
ma[dian[xx][yy]][dian[i][j]] = 1;
}
}
int ans = 0;
for (int i = 1; i <= btot; i++) {
memset(v, 0, sizeof(v));
if(find(i)) ans ++;
}
printf("%d", btot + wtot - ans);
return 0;
}
边栏推荐
- Gold Warehouse Database KingbaseGIS User Manual (6.2. Management Functions)
- 【集训DAY4】异或【字典树】
- 2022-08-09 mysql/stonedb-subquery performance improvement-introduction
- 杭电多校-Counting Stickmen-(思维+组合数+容斥)
- 如何知道电脑开机记录?
- 三:OpenCV图片颜色通道数据转换
- 力扣:518. 零钱兑换 II
- tiup cluster scale-out
- 直播平台怎么搭建,原生js实现编辑器撤消/恢复功能
- Technology feast!Huayun Data brings six topics to OpenInfra Days China
猜你喜欢
随机推荐
伦敦银行情中短线的支撑和阻力位
《动手学深度学习》(八) -- 多尺度标检测和单发多框检测
String类常用方法
Snap: 322. Change of Change
Mysql集群 ShardingSphere
多商户商城系统功能拆解25讲-平台端分销申请
【mysql】查询今天9点
【JZOF】77 Print binary tree in zigzag
CMake使用记录
Leetcode 701. 二叉搜索树中的插入操作
完全背包理论
68.qt quick-qml多级折叠下拉导航菜单 支持动态添加/卸载 支持qml/widget加载等
What are the Shenzhen fortress machine manufacturers?Which one do you recommend?
MVC与MVVM模式的区别
Gumbel distribution of discrete choice model
68. qt quick-qml multi-level folding drop-down navigation menu supports dynamic add/unload, support qml/widget loading, etc.
Live Preview | ICML 2022 11 first-author scholars share online neural network, graph learning and other cutting-edge research
61.【快速排序法详解】
How to know the computer boot record?
CAD 截断线段









