acwing-372. 棋盘覆盖(二分图)

acwing-372. 棋盘覆盖(二分图)给定一个 N 行 N 列的棋盘,已知某些格子禁止放置。求最多能往棋盘上放多少块的长度为 2、宽度为 1 的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。输入格式第一行包含两个整数 N 和 t,其中 t 为禁止放置的格子的数量。接下来 t 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出格式输出一个整数,表示结果。数据范围1≤N≤100,0≤t≤100输出样例:8 0输出样例:32#include&l

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给定一个 N 行 N 列的棋盘,已知某些格子禁止放置。

求最多能往棋盘上放多少块的长度为 2、宽度为 1 的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。

输入格式
第一行包含两个整数 N 和 t,其中 t 为禁止放置的格子的数量。

接下来 t 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。

输出格式
输出一个整数,表示结果。

数据范围
1≤N≤100,
0≤t≤100

输出样例:
8 0
输出样例:
32
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
typedef pair<int,int>PII;
const int N = 1e2 + 10;
int g[N][N];
int vis[N][N];
PII match[N][N];
int n,t;
int dx[4] = { 
   0,1,0,-1},dy[4] = { 
   -1,0,1,0};
bool find(int x,int y){ 
   
    for(int k = 0;k < 4;k ++){ 
   
        int a = x + dx[k],b = y + dy[k];
        if(a < 1 || a > n || b < 1 || b > n)continue;
        if(vis[a][b] || g[a][b])continue;
        PII t = match[a][b];
        vis[a][b] = true;
        if(t.x == 0 || find(t.x,t.y)){ 
   
            match[a][b] = { 
   x,y};
            return true;
        }
    }
    return false;
}
int main(){ 
   
    cin>>n>>t;
    int x,y;
    for(int i = 0;i < t;i ++){ 
   
        cin>>x>>y;
        g[x][y] = true;
    }
    int res = 0;
    for(int i = 1;i <= n;i ++){ 
   
        for(int j = 1;j <= n;j ++){ 
   
            if((i + j) % 2 && !g[i][j]){ 
   
                memset(vis,0,sizeof vis);
                if(find(i,j))res ++;
            }
        }
    }
    
    
    cout << res<<endl;
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169107.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月10日 下午9:00
下一篇 2022年8月10日 下午9:00


相关推荐

  • SpringCloud-Eureka原理解析

    SpringCloud-Eureka原理解析微服务架构中最核心的部分是服务治理 服务治理最基础的组件是注册中心 随着微服务架构的发展 出现了很多微服务架构的解决方案 其中包括我们熟知的 Dubbo 和 SpringCloud 关于注册中心的解决方案 dubbo 支持了 Zookeeper Redis Multicast 和 Simple 官方推荐 Zookeeper SpringCloud 支持了 Zookeeper Consul 和 Eureka 官方推

    2026年3月26日
    3
  • 【视频教程】JEECG 入门视频教程大全+历史版本号代码下载[通俗易懂]

    【视频教程】JEECG 入门视频教程大全+历史版本号代码下载

    2022年1月27日
    44
  • qt报错lnk2019_2019咬文嚼字十大错误

    qt报错lnk2019_2019咬文嚼字十大错误Qt错误:LNK2019:无法解析的外部符号原因及解决办法删除Qt中的一些用不到的函数或者添加一个新的.ui窗口的时候,我遇到了这个LINK2019无法解析的外部符号错误,网上查了半天可算解决了,写篇博客记录下。错误原因1:函数(一般是槽函数)在.h中声明,但却没有实现如图,我在自己的automatic.c文件中生成了一个按钮的点击处理函数,后面不想用了,把它删掉了,但是在automatic.h中忘记删掉声明了,于是系统编译报错。所以删掉声明就好。错误原因2:添加新的.ui窗体文件时编

    2022年10月6日
    4
  • 绘图软件Origin新手使用教程「建议收藏」

    绘图软件Origin新手使用教程「建议收藏」*写在前面:本文为便于博主自己学习进行的摘录整理,由于经过实际软件操作验证,故投稿原创,主要来源为知乎*绘图软件Origin使用教程一、新手绘制新图(1)创建新图1.新建图2.文字输入3.绘制箭头4.新建图表选择(2)绘图实例讲解1.创建工程2.将数据导入book3.创建空的graph,设置画布尺寸4.添加坐标系,设置坐标系的位置与尺寸5.添加图线6.设置坐标轴格式7.设置图的标题8.设置图线的格式9.设置并添加图例10.导出图片二、导入数据(1)支持导入的数据格式1.主要介绍2.导入数据3.数据格式转

    2022年5月31日
    563
  • java中的maven_maven创建web项目

    java中的maven_maven创建web项目一、前言早就知道maven在java项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。发现这些文档的作者都是java的大腕,大多都是站在掌握了一定maven基础的角度上进行介绍,让我这初学者看的云里雾里不知所云。于是又去查看maven的官方网站,总算是有所了解,但一旦动手实际操作却又雾里看花。唉,没办法,就只有一遍一遍的动手尝试,经过种种磨难总算是有一点眉…

    2025年10月5日
    4
  • Proxifier设置代理上网详细操作

    Proxifier设置代理上网详细操作分享知识传递快乐 Proxifier 配置上网代理 Proxifier 是一款功能非常强大的 socks5 客户端 可以让不支持通过代理服务器工作的网络程序能通过 HTTPS 或 SOCKS 代理或代理链 支持 Xp Vista Win7 支持 socks4 socks5 http https 代理协议 支持 TCP UDP 协议 可以指定端口 指定 IP 指定程序等运行模式 兼容性非常好 本人因公司需要

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号