AcWing 372. 棋盘覆盖(二分图&&匈牙利算法)

这篇具有很好参考价值的文章主要介绍了AcWing 372. 棋盘覆盖(二分图&&匈牙利算法)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AcWing 372. 棋盘覆盖(二分图&&匈牙利算法),AcWing,算法,图论,深度优先,匈牙利算法,二分图,匹配

输入样例:
8 0
输出样例:
32

解析:

        n为100,状压肯定爆。

        将每个骨牌看成二分图的一个匹配,即查找二分图的一个最大匹配,匈牙利算法。文章来源地址https://www.toymoban.com/news/detail-625768.html

#include<bits/stdc++.h>
using namespace std;
const int N=105;
int n,t,vis[N][N],g[N][N];	 
pair<int,int> match[N][N];
int dir[4][2]={1,0,0,1,-1,0,0,-1};
int check(int x,int y){
	return x>0&&y>0&&x<=n&&y<=n;
}
bool find(int x,int y){
	for(int i=0;i<4;i++){
		int dx=x+dir[i][0];
		int dy=y+dir[i][1];
		if(!vis[dx][dy]&&check(dx,dy)&&!g[dx][dy]){
			vis[dx][dy]=1;
			pair<int,int>p=match[dx][dy];
			if(p.first==0||find(p.first,p.second)){
				match[dx][dy]={x,y};
				return true;
			}
		}
	}
	return false;
} 
int main(){
	scanf("%d%d",&n,&t);
	for(int i=0;i<t;i++){
		int a,b;
		scanf("%d%d",&a,&b);
		g[a][b]=1;			
	}
	int res=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(g[i][j]) continue;
			if((i+j)%2){
				memset(vis,0,sizeof vis);	
				if(find(i,j)) res++;
			}	
		}		
	}
	cout<<res;
	return 0;
}

到了这里,关于AcWing 372. 棋盘覆盖(二分图&&匈牙利算法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【算法基础:搜索与图论】3.6 二分图(染色法判定二分图&匈牙利算法)

    https://oi-wiki.org/graph/bi-graph/ 二分图是图论中的一个概念, 它的所有节点可以被分为两个独立的集合,每个边的两个端点分别来自这两个不同的集合 。 换句话说, 二分图中不存在连接同一集合内两个节点的边 。 如何判断一个图是二分图? 当且仅当图中不含奇数环 。(奇数

    2024年02月16日
    浏览(42)
  • 算法基础复盘笔记Day07【搜索与图论】—— Prim、Kruskal、染色体判定二分图、匈牙利算法

    ❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于 Java后端开发 ,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得 关注 、 点赞 、 收藏 、 评论 ⭐️⭐️⭐️ 📣 您的支持将是我创作的动力,让我们一起加油进步吧!!!🎉🎉 1. 题目

    2024年02月02日
    浏览(48)
  • 【计算机视觉 | 目标检测】术语理解7:二值匹配(Binary Matching),DETR中的Object query的理解,匈牙利算法,DETR中的二分图匹配

    当涉及到计算机视觉中的二值匹配(Binary Matching),它是一种用于比较和匹配二值图像的技术。二值图像由黑色和白色像素组成,每个像素只有两种可能的取值。二值匹配的目标是确定两个二值图像之间的相似度或匹配度。 以下是几种常见的二值匹配方法: 汉明距离:通过

    2024年02月07日
    浏览(40)
  • 【匹配】匈牙利匹配算法

    every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?type=blog 匈牙利匹配算法 二分图 顶点分为两个集合, 集合间顶点相连,集合内点不相连 匹配 一个匹配就是一个边的集合,其中, 任意两条边不存在公共的顶点 最大匹配 上图中,我们能找到多组匹配,在

    2024年04月27日
    浏览(33)
  • 指派问题与匈牙利算法

    有n项不同的工作或任务,需要n个人去完成,要求每人只完成一项工作。由于每人的知识、能力、经验等不同,故各人完成不同任务所需的时间不同。问应指派何人完成何项工作,使完成n项工作总耗时最少。这就是指派问题,指派问题也是整数规划问题。 目标函数是最小化问

    2024年02月05日
    浏览(37)
  • 搜索与图论:匈牙利算法

    将所有点分成两个集合,使得所有边只出现在集合之间,就是二分图 二分图:一定不含有奇数个点数的环;可能包含长度为偶数的环, 不一定是连通图

    2024年02月08日
    浏览(58)
  • 数学建模(四)整数规划—匈牙利算法

    目录 一、0-1型整数规划问题 1.1 案例 1.2 指派问题的标准形式 2.2 非标准形式的指派问题 二、指派问题的匈牙利解法  2.1 匈牙利解法的一般步骤 2.2 匈牙利解法的实例 2.3 代码实现 投资问题: 有600万元投资5个项目,收益如表,求利润最大的方案? 设置决策变量: 模型: 指派

    2024年02月11日
    浏览(40)
  • DETR | 基于匈牙利算法的样本分配策略

    如有错误,恳请指出。 前不久,沐神对DETR进行了讲解,其实之前也对DETR进行了介绍,见:论文阅读笔记 | 目标检测算法——DETR。现对DETR的核心内容进行重温,也就是其所提出的目标检测的end-to-end框架,输入的是一张图像,输出的直接是最后的预测标注结果,不再需要后处

    2024年02月11日
    浏览(37)
  • 图论及其应用(匈牙利算法)---期末胡乱复习版

    T1:从下图中给定的 M = {x1y4,x2y2,x3y1,x4y5},用 Hungariam算法【匈牙利算法】 求出图中的 完美匹配 ,并写出步骤。 关于匈牙利算法: 需要注意的是,匈牙利算法仅适用于 二分图 ,并且能够找到完美匹配。 什么是 交替路 ?从一个未匹配点出发,依次经过非匹配边–匹配边

    2024年02月01日
    浏览(68)
  • 数学建模笔记——整数规划类问题之我见(匈牙利算法)

    目录 浅浅叙述匈牙利算法 基本思路 计算步骤 来一道简单例题 1.1 符号规定 1.2目标函数​编辑       1.3约束条件 ​编辑 1.4代码 题目复述 基本假设 问题分析 符号说明  模型的建立与求解 模型建立思路 模型建立的过程 建立0-1整数规划模型  运用匈牙利方法: 代码实现  

    2023年04月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包