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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Animation用法_animation动画效果

    动画类型Android的animation由四种类型组成XML中 alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果JavaCode中AlphaAnimation渐变透明度动画效

    2022年3月9日
    52
  • Android退出APP时如何同时结束APP进程

    Android退出APP时如何同时结束APP进程1.在退出APP的代码逻辑里加入以下代码:ActivityManageram=(ActivityManager)getSystemService(ACTIVITY_SERVICE);am.killBackgroundProcesses(“包名”);//API至少为8才能使用2.添加权限

    2022年7月17日
    20
  • UltraEdit正则表达式替换空行

    UltraEdit正则表达式替换空行前提是,使用unix正则表达式,替换1、使用正规的正则表示式来提换,表达式为:^[\t]*\r\n2、如果第一种方式无法实现,直接在文本中复制空行,然后在替换时使用下面的正则表达式:^复制的内容

    2022年5月13日
    46
  • HDFS存储大量小文件居然有这样的问题!看我怎么搞定它!「建议收藏」

    HDFS存储大量小文件居然有这样的问题!看我怎么搞定它!「建议收藏」写在前面本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系解答HDFS存储大量小文件有什么问题?小文件是指文件大小小于HDFS上Block大小的文件。这样的文件会给Hadoop的扩展性和性能带来严重问题。首先,在HDFS中,任何Block、文件或者目录在内存中均以对象的形式存储,每个对象约占150Byte。如果有100000个小文件,每

    2022年5月20日
    120
  • 什么是javabean及其用法

    什么是javabean及其用法一、什么是JavaBean  JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:这个Java类必须具有一个无参的构造函数 属性必须私有化。 私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。javaBean范例:1packagegacl.javabean.study;23/**4…

    2022年7月17日
    13
  • 猴子摘香蕉_猴子香蕉游戏下载

    猴子摘香蕉_猴子香蕉游戏下载注意:不是严格按照一阶谓词逻辑写法,仅供参考题目:房内有一个猴子,一个箱子,天花板挂了一串香蕉,其位置如图所示。猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上。请定义必要的谓词,列出问题的初始化状态(即下图所示状态),目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)步骤:1、定义描述环境状态的谓词AT(x,y)x在y处x={monke…

    2022年9月26日
    3

发表回复

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

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