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

2023-11-06

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

解析:

        n为100,状压肯定爆。

        将每个骨牌看成二分图的一个匹配,即查找二分图的一个最大匹配,匈牙利算法。

#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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AcWing 372. 棋盘覆盖(二分图&&匈牙利算法) 的相关文章

  • 浙大水业oa系统服务器地址,OA系统

    OA系统功能定位于知识管理 企业决策支持 资源共享和企业协同工作 它由单纯的办公自动化向提升到协助管理整个企业为目标 表现在以下四个方面 把协同工作融入业务流程中 团队中通过及时的交流 准确的任务分派从而实现高绩效管理 E OFFICE办公
  • 通过js修改网页内容

    js可以通过文本所在标签的id获取该标签对象 然后修改其内容 如 document getElementById 标签id innerHTML 要修改的文本内容 该方法可以在要修改的文本内容中加html标签 如果只是纯文本的话 可以使用in
  • 严重性 代码 说明 项目 文件 行 禁止显示状态

    严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 public void thiscall LinkedList

随机推荐

  • 解决ubuntu无法输入中文标点

    使用Ctrl 切换
  • ListBox控件 滚动条

    今天在使用LISTBOX控件中遇到的一点小问题 主要是两个问题 水平滚动条不显示内容 垂直滚动条没有自动滚动 在网上查了一下找到了解决办法 原来只需要向控件发送消息就行了 具体代码如下 以下都是在Dialog类中的函数操作 如果是使用 Se
  • C++编程规范(101条规则、准则与最佳实践)

    C 编程规范 101条规则 准则与最佳实践 虽然是书本的目录 但也是高度的概括和总结 组织和策略问题 第0条 不要拘泥于小节 了解哪些东西不应该标准化 第1 条 在高警告级别干净利落地进行编译 第2 条 使用自动构建系统 第3 条 使用版本
  • 解决uniapp在微信小程序显示图片/数据,h5不显示图片/数据。

    配置跨域 首先在mainifest json中的源码视图中配置跨域 h5 devServer port 8080 disableHostCheck true proxy dpc target https www edonguoji cn c
  • Linux系统编程之常用线程同步的三种方法

    Linux系统编程之线程同步高效率编程 Linux系统中线程最大的特点就是共享性 线程同步问题较为困难也很重要 最常用的三种是 条件变量 互斥锁 无名信号量 ps 有名信号量可用于进程同步 无名信号量只能用于线程同步 是轻量级的 一 互斥锁
  • Google Guava

    转载自并发编程网 ifeve com 本文链接地址 Google Guava官方教程 中文版 中文文档 http ifeve com google guava 开源地址 https github com google guava 今天偶然发
  • swagger3或者swagger报nullpointexception

    很简单这个问题就是版本不匹配 就是2 6 0以上版本的springbootmvc扫描方法和老版本不同 在springboot配置 application yml 里面加上如果是properties则是加上 spring mvc pathma
  • 配置Spark on YARN集群内存

    在这里插入代码片 运行文件有几个G大 默认的spark的内存设置就不行了 需要重新设置 还没有看Spark源码 只能先搜搜相关的博客解决问题 按照Spark应用程序中的driver分布方式不同 Spark on YARN有两种模式 yarn
  • 利用CNN进行人脸年龄预测

    很久之前做的东西了 最近做了一个人脸相似度检测 里面用到了这里的一个模型 所以抽个空把人脸年龄检测的思路总结一下 与其他CNN分类问题类似 人脸年龄预测无非就是将人脸分为多个类别 然后训练卷积神经网络 最后利用训练好的卷积神经网络进行分类即
  • 数据结构: 线性表(无哨兵位单链表实现)

    文章目录 1 线性表的链式表示 链表 1 1 顺序表的优缺点 1 2 链表的概念 1 3 链表的优缺点 1 4 链表的结构 2 单链表的定义 2 1 单链表的结构体 2 2 接口函数 3 接口函数的实现 3 1 动态申请一个结点 BuySL
  • SparkStreaming与Kafka010之05之02 Consumer的offset 自定义设置offset

    package Kafka010 import Kafka010 Utils MyKafkaUtils import org apache kafka clients consumer ConsumerRecord import org a
  • IDEA创建Springboot项目提示`Initialization failed for ‘https://start.spring.io‘ Please check URL`

    1 1 settings gt http proxy 2 check connection 在其中输入 https start spring io 3 开始创建 4 导入springweb的一个依赖 5 创建成功 选中的3个为maven环境
  • CSS样式——旋转工具箱

    目录 基础模板 工具箱样式 加号按钮样式 工具按钮样式 旋转效果 CSS样式 旋转工具箱 效果如下所示 基础模板 首先我们准备基础模板 模板代码如下图所示
  • 盘点12个Python数据可视化库

    大家好 我是小z 这篇文章是关于一本很奈斯的可视化书籍的介绍 老规矩 文末小z简单粗暴的抽奖送出1本 在数据可视化的研究热潮中 如何让数据生动呈现 成了一个具有挑战性的任务 随之也出现了大量的可视化软件 相对于其他商业可视化软件 Pytho
  • C#多线程之BackgroundWorker

    一 BackgroundWorker介绍 我们有时要执行耗时的操作 在该操作未完成之前操作用户界面 会导致用户界面停止响应 解决的方法就是新开一个线程 把耗时的操作放到线程中执行 这样就可以在用户界面上进行其它操作 新建线程可以用 Thre
  • jvm垃圾回收机制

    如何判定一个对象是不是垃圾对象 1 引用计数法 2 根可达性算法 引用计数法 2 可达性分析算法 垃圾回收算法 1 标记清除算法 位置不连续 会产生磁盘碎片 2 复制算法 没有碎片 浪费空间 3 标记整理 没有碎片 效率偏低
  • 算法训练营第十七天(7.29)

    目录 LeeCode513 Find Bottom Left Tree Value LeeCode112 Path Sum LeeCode113 Path Sum ll LeeCode106 Construct Binary Tree fr
  • [C语言]---操作符

    1 算术操作符 的两个操作数必须为整数 3 2 1 3 0 2 1 5 2 移位操作符 左移 lt lt num lt lt 1 num值不变 右移 gt gt 分两种 逻辑移位 左边用0填充 右边丢弃 算术移位 左边用原该值的符号位填充
  • VMware下Ubuntu与宿主Windows共享文件夹

    概述 1 安装VMware Tool 2 设置共享 步骤 开始安装VMware Tool 显示如下画面 如果宿主无法访问外网 可能会出现一个更新失败 可以无视之 通过下列命令解压 执行 分别是下面的tar和sudo的两行 下面是已有vmwa
  • AcWing 372. 棋盘覆盖(二分图&&匈牙利算法)

    输入样例 8 0 输出样例 32 解析 n为100 状压肯定爆 将每个骨牌看成二分图的一个匹配 即查找二分图的一个最大匹配 匈牙利算法 include