全部覆盖棋盘7×7_acwing题库

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


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/168612.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最小二乘法详细推导过程

    最小二乘法详细推导过程转载自:http://blog.csdn.net/marsjohn/article/details/54911788在数据的统计分析中,数据之间即变量x与Y之间的相关性研究非常重要,通过在直角坐标系中做散点图的方式我们会发现很多统计数据近似一条直线,它们之间或者正相关或者负相关。虽然这些数据是离散的,不是连续的,我们无法得到一个确定的描述这种相关性的函数方程,但既然在直角坐标系中数据分布接近一…

    2022年5月13日
  • springcloudfeign原理面试题_微服务feign作用

    springcloudfeign原理面试题_微服务feign作用Feign原理简述启动时,程序会进行包扫描,扫描所有包下所有@FeignClient注解的类,并将这些类注入到spring的IOC容器中。当定义的Feign中的接口被调用时,通过JDK的动态代理来生成RequestTemplate。 RequestTemplate中包含请求的所有信息,如请求参数,请求URL等。 RequestTemplate声明Request,然后将Request交给cl…

    2022年9月26日
  • 字符串类的设计与实现_C语言字符串编程题

    字符串类的设计与实现_C语言字符串编程题Java程序设计(基础)- 字符串

    2022年4月22日
  • ubuntu clion激活码【2021.8最新】[通俗易懂]

    (ubuntu clion激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsa…

    2022年3月27日
  • java飞机大战_java飞机大战代码步骤解析

    java飞机大战_java飞机大战代码步骤解析一、简单介绍这是一个功能相对全的JAVA版坦克大战,界面绘制是通过JAVA的图形化用户界面完成的,包括了菜单界面和游戏界面。其中菜单界面可以供玩家选择重新开始游戏、暂停、继续、是否播放背景音乐、帮助等操作;游戏界面绘制了坦克、河流、草地、鹰碉堡等经典坦克场景,玩家在游戏界面操作坦克开始对战。本游戏使用的主要技术有Swing编程、面向对象编程、多线程编程。本…

    2022年8月10日
  • WSFC2012 群集存储空间

    WSFC2012 群集存储空间

    2021年6月8日

发表回复

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

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