当前位置: 首页 > news >正文

【棋盘覆盖——匈牙利算法】

题目

代码

#include <bits/stdc++.h>
using namespace std;
#define x first
#define y second
typedef pair<int, int> PII;
const int N = 110;
int g[N][N], st[N][N];
PII match[N][N];
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};
int n, t;
bool find(PII u)
{for(int i = 0; i < 4; i++){int x = u.x + dx[i], y = u.y + dy[i]; //遍历心仪女生if(x < 1 || y < 1 || x > n || y > n || g[x][y] || st[x][y]) continue;st[x][y] = 1; //指这次处理之后归宿确定(不可再次考虑)if(match[x][y].x == -1 || find(match[x][y])) //名花无主或者皆大欢喜{match[x][y] = u; //匹配return true; //报喜}}return false;
}
int main()
{cin >> n >> t;for(int i = 1; i <= t; i++){int a, b;cin >> a >> b;g[a][b] = 1;}memset(match, -1, sizeof match);int ans = 0;for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){if((i + j) % 2 || g[i][j]) continue;memset(st, 0, sizeof st);if(find({i, j})) ans++;}}cout << ans;
}


http://www.mrgr.cn/news/64129.html

相关文章:

  • 栈虚拟机和寄存器虚拟机,有什么不同?
  • 解析CRON表达式内容
  • 学习threejs,使用粒子实现下雪特效
  • Spring Boot 跨域解决方案
  • Android 大疆面经
  • 微服务基础拆分实践(第一篇)
  • 课程讲解---深搜
  • 使用NCNN在树莓派部署深度学习模型流程
  • vue中向响应式对象中添加新属性的方法(vm.$set() )
  • 微服务设计模式 - 发布订阅模式(Publisher Subscriber Pattern)
  • JavaScript。—关于语法基础的理解—
  • nacos+maven实现多环境配置
  • 广义加性模型
  • 短剧开发新模式:从内容创新到市场突围的全攻略
  • 仅需百元/年,助你快速构建高效私有的Node.js图床
  • Yocto中MACHINE 和 DISTRO是输入,IMAGE 是他们组合的产物
  • 华为云安装docker
  • Docker — 跨平台和环境部署
  • Linux:防火墙和selinux对服务的影响
  • docker复现pytorch_cyclegan
  • 【C/C++】字符/字符串函数(0)——由ctype.h提供
  • Linux云计算 |【第五阶段】CLOUD-DAY8
  • 前端将网页转换为pdf并支持下载与上传
  • 我的作品·导航
  • Java复习29(PTA)
  • SpringBoot+FileBeat+ELK8.x版本收集日志