codevs2171 棋盘覆盖

题目描述 Description

给出一张n*n(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少1*2的多米诺骨牌进行掩盖。

输入描述 Input Description

第一行为n,m(表示有m个删除的格子)
第二行到m+1行为x,y,分别表示删除格子所在的位置
x为第x行
y为第y列

输出描述 Output Description

一个数,即最大覆盖格数

样例输入 Sample Input

8 0

样例输出 Sample Output

32

数据范围及提示 Data Size & Hint

经典问题

/*
模板题
*/
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<stack>
#define ll long long
using namespace std;
const int N = 30500;
struct edge{int v;int nxt;
}e[N*3];
int head[N],cnt;
int n,m;
bool vis[205][205];
int chk[N],mch[N];
int read(){int x=0,f=1;char ch=getchar();while(!(ch>='0'&&ch<='9')){if(ch=='-')f=-1;ch=getchar();};while(ch>='0'&&ch<='9'){x=x*10+(ch-'0');ch=getchar();};return x*f;
}
void ins(int u,int v){cnt++;e[cnt].v = v;e[cnt].nxt = head[u];head[u] = cnt;
}
bool dfs(int u){int to;for(int i = head[u];i;i=e[i].nxt){to = e[i].v;if(!chk[to]){chk[to] = true;if(mch[to] == -1 || dfs(mch[to])){mch[to] = u;mch[u] = to;return true;}}}return false;
}
void hun(){int ans = 0,lm = n*n;memset(mch,-1,sizeof(mch));for(int i = 1;i <= lm;i++){if(mch[i] == -1){memset(chk,0,sizeof(chk));if(dfs(i)) ++ans;}}cout<<ans;
}
int main(){n = read();m = read();int x,y;for(int i = 1;i <= m;i++){y = read();x = read();vis[y][x] = true;}for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){if(vis[i][j]) continue;if(j < n && !vis[i][j+1]){ins((i-1)*n+j,(i-1)*n+j+1);ins((i-1)*n+j+1,(i-1)*n+j);}if(i < n && !vis[i+1][j]){ins((i-1)*n+j,i*n+j);ins(i*n+j,(i-1)*n+j);}}}hun();return 0;
}

 

转载于:https://www.cnblogs.com/hyfer/p/6000909.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day13-日历模块

import calendar日历模块 #使用#返回制定殁年某月日历 print(calendar.month(2019,3)) #返回指定年份的日历 print(calendar.calendar(2019)) #判断闰年返回True 或者Flase print(calendar.isleap(2000)) #返回某个月的weekd的第一天和这个月所有的天数 print(calendar.monthra…

关于eclipse项目红色感叹号的解决办法

在网上找到了解决办法&#xff0c;详见&#xff1a;http://jingyan.baidu.com/article/ea24bc3986f7b0da62b33188.html

linux模拟网络延迟,使用Nistnet搭建网络延迟模拟设备 (network delay simulator)

mknod /dev/hitbox c 62 0mknod /dev/nistnet c 62 1chown root /dev/hitboxchown root /dev/nistnetmknod /dev/mungebox c 63 0chown root /dev/mungeboxmknod /dev/spybox c 64 0chown root /dev/spyboxmodprobe nistnet可以将这个放到/etc/rc.local中&#xff0c;以便重启后…

MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询

简单介绍&#xff1a; Criteria&#xff0c;包含一个Cretiron的集合,每一个Criteria对象内包含的Cretiron之间是由AND连接的,是逻辑与的关系。oredCriteria&#xff0c;Example内有一个成员叫oredCriteria,是Criteria的集合,就想其名字所预示的一样&#xff0c;这个集合中的Cri…

将本地Blog部署到GitHub上,有自己的博客页面!

前言 上一篇文章我们已经把本地的hexo环境搭建好了&#xff0c;并且在本地成功预览&#xff0c;但是本地预览也意味着自己的博文只能自己看的到&#xff0c;其他人根本看不到&#xff0c;这篇文章将接上文说一说如何把本地Blog部署到GitHub上&#xff0c;好让小伙伴可以来访问我…

Linux下安装配置JDK

本人使用的VM虚拟机&#xff0c;在VM上安装了Linux&#xff0c;版本是CentOS-6.7-i386-bin-DVD1.iso。 一、下载JDK 在进入JDK官网&#xff0c;找到要下载的JDK版本&#xff0c;将下载地址复制下来&#xff0c;放到迅雷中下载&#xff0c;我下载的是&#xff1a;http://downloa…

新手使用GitHub客户端提交项目的步骤

1.下载https://windows.github.com/ github客户端 2.安装完github&#xff0c;会出现 点击GitHub&#xff0c;Git Shell是命令行指令&#xff0c;暂时用不上 3.点击进入之后 输入你在https://github.com上面注册的用户名和密码点击log in 4.登录之后新建项目 点击左上角…

linux的命令uname n,Linux下uname命令及其选项

Linux下uname命令及其选项2017-03-15 23:22:26晓得了Linux系统的用户信息后&#xff0c;你也可能想晓得所登录的系统信息&#xff0c;今日就绍介获取系统本身信息的命令uname,这搭u应当是UNIX的缩写&#xff0c;操作如次&#xff1a;uname使役uname还可以得到其它相关系统的信息…

火狐浏览器Firefox如何使用插件,火狐有哪些好用的插件

1 CoorPreviews 不打开网页链接预览该网页的内容。 预览如图所示&#xff1a; 点击关闭旁边的钉子可以让该窗口保持开着并且浏览速度加快。这对于快速浏览图片时非常有用。 2 FoxTab 3D方式预览网页&#xff0c;只要按一下输入框左侧按钮即可。 此外还提供多种预览模式和其…

GitHub+Hexo搭建自己的Blog之-主题配置

前言 前两章我们已经把Blog的环境全部搭建完毕了&#xff0c;但是还没有内容&#xff0c;而且hexo默认的主题是不是感觉挺丑的&#xff0c;其实hexo给我们提供了很多主题模板&#xff0c;总有一款是你喜欢的&#xff0c;本篇文章将继续说一说如何配置主题&#xff0c;怎么创建博…

开源app之MyHearts

前言 这个月&#xff0c;说实话&#xff0c;有忙有闲&#xff0c;经历了一次病痛的洗礼&#xff0c;才认识到了只有好好的生活&#xff0c;认真的对待自己的身体&#xff0c;才能更好的去工作&#xff0c;没有了身体的支撑&#xff0c;什么工作都只能是纸老虎&#xff0c;不攻自…

关于在软件中添加扫描二维码功能的详细步骤及对应的资源。

最近有在一款软件中添加二维码扫描功能&#xff0c;在网上整理了一堆资源后&#xff0c;把一些干货拿出来给大家分享&#xff0c;希望大家以后能更容易的使用这个功能。 详细步骤见这个视频连接&#xff1a;http://www.jikexueyuan.com/course/134.html 对应的zxing资源放在下…

前端那些事之原生 js实现贪吃蛇篇

2019独角兽企业重金招聘Python工程师标准>>> 原生js实现贪吃蛇 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>贪吃蛇游戏</title><style>body, div, img {margin: 0 auto;pa…

整理一些完全免费开放的API接口

前言 在开发测试阶段&#xff0c;或者是在写Demo的时候&#xff0c;难免会用到一些测试数据&#xff0c;有时苦于没有可用的接口&#xff0c;需要自己动手去写&#xff0c;但是这样大大降低了效率&#xff0c;前期我也找了一些开放的接口&#xff0c;这篇文章整理一下&#xff…

Linux格式化异常,Linux下DateFormat的parse方法出现”ParseException”异常

在windows下使用DateFormat的parse方法&#xff0c;将字符中转化为Date类型时&#xff0c;一切正常。可安装到Linux下&#xff0c;就出现了ParseException异常。代码如下&#xff1a;public Date toDateTime(String str){Date dt new Date();try{DateFormat df;df DateFormat…

如何发现优秀的开源项目?

之前发过一系列有关 GitHub 的文章&#xff0c;有同学问了&#xff0c;GitHub 我大概了解了&#xff0c;Git 也差不多会使用了&#xff0c;但是 还是搞不清 GitHub 如何帮助我的工作&#xff0c;怎么提升我的工作效率&#xff1f; 问到点子上了&#xff0c;GitHub 其中一个最重…

自已开发完美的触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器

手机端网页版app在使用下拉列表时&#xff0c;传统的下拉列表使用起来体验非常不好&#xff0c;一般做的稍好一点的交互功能界面都不会直接使用下拉列表&#xff0c;所以app的原生下拉列表都是弹窗列表选择&#xff0c;网页型app从使用体验上来当然也应该做成那样&#xff0c;前…

*args, **kwargs的用法

python 中参数*args, **kwargs def foo(*args, **kwargs): print args , args print kwargs , kwargs print ---------------------------------------if __name__ __main__: foo(1,2,3,4) foo(a1,b2,c3) foo(1,2,3,4, a1,b2,c3) foo(a, 1, None, a1, b2, c3)输出结果如下&…

一个 js 中值传递和引用传递的坑。

今天在调试代码时遇到一个问题&#xff0c;刚开始想不明白&#xff0c;然后分析了一下后&#xff0c;才知道其中的问题&#xff0c;这也是一个基础的问题&#xff0c;&#xff08;所以基础是很重要的&#xff09; 代码如下&#xff1a; var a 3; a a * 2; console.log(a); //…

linux运维适合女生么,女生真的不适合做IT行业吗?Linux运维适合女生学习吗?

在很多人的脑海中都是女生不适合做IT&#xff0c;IT行业不适合女性。可能传统的思想中&#xff0c;女生只适合做文职工作&#xff0c;比如说幼师、公务员、会计等&#xff0c;就因为这样的思想也让IT行业男女出现了失衡的情况&#xff0c;那么作为女生真的不适合做IT行业吗?Li…