题目描述 Description

有一个N×M的单位方格中,其中有些方格是水塘,其他方格是陆地。如果要用1×2的矩阵区覆盖(覆盖过程不容许有任何部分重叠)这个陆地,那么最多可以覆盖多少陆地面积。

输入描述 Input Description

输入文件的第一行是两个整数N,M  (1<=N,M<=100),第二行为一个整数K( K<=50),接下来的K行,每行两个整数X,Y表示K个水塘的行列位置。(1<=X<=N,1<=Y<=M)。

输出描述 Output Description

输出所覆盖的最大面积块(1×2面积算一块)。

样例输入 Sample Input

4 4

6

1 1

1 4

2 2

4 1

4 2

4 4

样例输出 Sample Output

4

数据范围及提示 Data Size & Hint

见描述

#include<cstdio>
#include<algorithm>
#include<set>
#include<ctime>
#include<queue>
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdlib>
using namespace std;int n,m,k;
bool map[10010];
int linky[10010],color[10010];
int vis[10010];
int T,ans,sum;bool find(int x)
{//cout<<x<<endl;if(x%n && !map[x+1]){if(vis[x+1]!=T){vis[x+1]=T;if(!linky[x+1] || find(linky[x+1])){linky[x+1]=x;//cout<<x+1<<"     "<<x<<endl;return true;}}}if((x-1)%n && !map[x-1]){if(vis[x-1]!=T){vis[x-1]=T;if(!linky[x-1] || find(linky[x-1])){linky[x-1]=x;//cout<<x-1<<"     "<<x<<endl;return true;}}}if(x+n<=sum && !map[x+n]){if(vis[x+n]!=T){vis[x+n]=T;if(!linky[x+n] || find(linky[x+n])){linky[x+n]=x;//cout<<x+n<<"     "<<x<<endl;return true;}}}if(x-n>0 && !map[x-n]){if(vis[x-n]!=T){vis[x-n]=T;if(!linky[x-n] || find(linky[x-n])){linky[x-n]=x;//cout<<x-n<<"     "<<x<<endl;return true;}}}return false;
}int main()
{cin>>m>>n>>k;int cur=0;for(int i=0;i<k;i++){int x,y;scanf("%d%d",&x,&y);map[(x-1)*n+y]=true;}sum=n*m;for(int i=1;i<=sum;i++){color[i]=cur;cur^=1;if(!(n&1) && !(i%n)){cur^=1;}}for(int i=1;i<=sum;i++){T=i;if(map[i] || color[i])continue;//cout<<T<<":::::::::"<<endl;if(find(i))ans++;//cout<<ans<<endl;}cout<<ans<<endl;return 0;
}
//Copyright (C) 2014 wikioi user12923 All rights reserved  

Wikioi 1022 覆盖相关推荐

  1. 【wikioi】1022 覆盖(匈牙利)

    http://www.wikioi.com/problem/1022/ 好不容易来一次1A,,水题啊.. 染色后裸匈牙利orz #include <cstdio> #include < ...

  2. wikioi 3027 线段覆盖 2

    题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段 ...

  3. client elapsed: 0 ms, server elapsed: 1022 ms, timeout: 1000 ms,

    {timestamp: 1528113688276, status: 500, error: "Internal Server Error",-} error : "In ...

  4. 统信桌面操作系统V20专业版(1022)发布

    今日,统信桌面操作系统V20专业版(1022)正式发布. 统信桌面操作系统具有安全稳定.智能协同.美观易用的特点,拥有丰富的软硬件兼容性,广泛的应用生态支持, 兼容国内主流处理器架构,可为党政军.金融 ...

  5. 基于流向算法的WSN覆盖优化

    文章目录 一.理论基础 1.流向算法 2.FDA算法流程图 二.WSN覆盖优化仿真 1.二维覆盖优化 2.三维覆盖优化 三.参考文献 一.理论基础 1.流向算法 流向算法(Flow Direction ...

  6. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin

    1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...

  7. LeetCode简单题之检查是否区域内所有整数都被覆盖

    题目 给你一个二维整数数组 ranges 和两个整数 left 和 right .每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 . 如 ...

  8. html滑动逐渐覆盖效果,创意jQuery和CSS3滑动覆盖响应式幻灯片特效

    这是一款非常有创意的jQuery和CSS3滑动覆盖响应式幻灯片特效.该幻灯片特效采用响应式设计,在幻灯片切换时使用一个滑动块状区域来进行覆盖,显示新的幻灯片内容,整体效果非常不错. 使用方法 HTML ...

  9. 多个矩形,求覆盖面积,周长,及交点

    问题:给出若干个矩形,(给的是矩形左上角和右下角坐标),求最后所得图形的面积/周长: 三个矩形如左图所示,而若要计算面积,看右图,用3个矩形各自的面积之和减去重复部分(红色和蓝色)的面积 人算很简单, ...

最新文章

  1. 开发板tftp:timeout问题
  2. python中flag的用法_python中“标志位”的使用
  3. C++获取链表的大小的实现算法(附完整源码)
  4. 图论--拓扑排序--判断一个图能否被拓扑排序
  5. 关于c/c++/obj-c的混合使用 (2010-06-22 10:05:33)
  6. hdu 6962 I love tree 线段树维护二次函数
  7. 论文浅尝 | 基于知识库的类型实体和关系的联合抽取
  8. 玩游戏学微积分!探索理工锻炼的游戏化应用, 腾讯发布新游戏《微积历险记》...
  9. 数据结构 8-0 排序
  10. soa---java 多线程的---锁
  11. 鸿蒙系统有哪些手机可以用,鸿蒙系统支持哪些手机型号
  12. Wowza 4.3.0安装和使用 并联合海康摄像头(RTSP)实现直播推流
  13. 多个jQuery版本如何共存
  14. camera中文版软件 ip_网络摄像机监控(IP Camera Viewer)下载-摄像头监控(IP Camera Viewer)官方版-华军软件园...
  15. 网联兴,银联苦:一文看清支付清算市场新局面的矛盾和疑惑
  16. 文件系统测试工具IOZONE
  17. 烂到不想考研!大学糟糕宿舍大盘点!
  18. ASP.NET 教程
  19. matlab newton插值,(最新整理)Newton插值法
  20. 家庭媒体中心NAS方案设计

热门文章

  1. 闲下来了,去听了一次现场音乐会
  2. 在大厂的数据工程师工作日常工作分享
  3. jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
  4. 宝塔ftp连接不上的解决方法
  5. Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
  6. 荣耀VNXP 5G天团全员正式出道,Play4系列空降“走花路”
  7. HTML5 JQuery 实现搜索匹配功能
  8. Linux查看光盘是否存在命令,Linux命令——光盘
  9. 2021年中式面点师(高级)试题及答案及中式面点师(高级)实操考试视频
  10. spring-oauth-server实践:授权方式三:PASSWORD模式下 authorities:ROLE_{user.privillege}, ROLE_USER...