题意:
给你一个n*n的矩阵,然后再给你几个坑,然后问你能否被1*2的长方形给覆盖;

  • -弱知道了是二分匹配的做法,但是弱还是不会转化,又是在建图上GG了

分析:
从国际象棋的那个黑白色理解,这是一张二分图(好像非常有道理)

建图:由于是1*2的纸片覆盖,那么这个区域的两个点的(i+j)必然是一个奇数和一个偶数。
先搞好点,我们分别给奇数、偶数点 依次从1开始标号,相邻的就是有一条边;
这波建图好是经典;
一般建图弱感觉就是:先搞点,再建图,有些还会再初始化一波;

然后就是求一下最大匹配,
如果最大匹配+K=N*M就输出”YES”,否则就是”NO”

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<map>
#include<stack>
#include<algorithm>
using namespace std;
#define N 1500int ma[N][N];
int ls[N][N];
int n,m,t;
int cx[N];
int cy[N];
int ji,ou;
bool vis[N];int findpath(int u)
{for(int i=1;i<ou;i++){if(!vis[i]&&ma[u][i]){vis[i]=1;if(cy[i]==-1||findpath(cy[i])){cx[u]=i;cy[i]=u;return 1;}}}return 0;
}void solve()
{memset(cx,-1,sizeof(cx));memset(cy,-1,sizeof(cy));int ans=0;for(int i=1;i<ji;i++){memset(vis,0,sizeof(vis));ans+=findpath(i);}ans*2==(m*n-t)?printf("YES\n"):printf("NO\n");
}int main()
{while(~scanf("%d%d",&n,&m)){scanf("%d",&t);memset(ls,0,sizeof(ls));for(int i=0;i<t;i++){int x,y;scanf("%d%d",&x,&y);ls[y][x]=-1;}ji=ou=1;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(ls[i][j]!=-1){if((i+j)%2==0)ls[i][j]=ji++;elsels[i][j]=ou++;}}}memset(ma,0,sizeof(ma));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(ls[i][j]!=-1&&(i+j)%2==1){if(ls[i-1][j]>=1)ma[ls[i-1][j]][ls[i][j]]=1;if(ls[i+1][j]>=1)ma[ls[i+1][j]][ls[i][j]]=1;if(ls[i][j-1]>=1)ma[ls[i][j-1]][ls[i][j]]=1;if(ls[i][j+1]>=1)ma[ls[i][j+1]][ls[i][j]]=1;}}}solve();}return 0;
}
[ls[i][j]]=1;}}}solve();}return 0;
}

转载于:https://www.cnblogs.com/keyboarder-zsq/p/5934535.html

POJ2446【建图建图】相关推荐

  1. Mila唐建博士《图神经网络:算法与应用》研究进展

    来源:大数据文摘本文附pdf,建议阅读5分钟 本文总结了<图神经网络:算法与应用>研究进展. 图神经网络是当下研究的热点之一.HEC 蒙特利尔大学商学院助理教授唐建唐建博士在CIFAR D ...

  2. HQChart钉钉小程序教程1-创建K线图

    HQChart钉钉小程序教程1-创建K线图,分时图 钉钉小程序HQChart效果图 步骤 1. 创建画布 2. 添加HQChart插件文件 3. import插件 4. 初始化HQChart插件 5. ...

  3. android微信怎么建群,微信可以建群吗 图文教你微信怎么建群

    微信可以建群吗 图文教你微信怎么建群 来源:www.18183.com作者:皮卡时间:2016-06-23 微信现在可以说是大家日常生活中必不可少的一款聊天工具了,其势头甚至可以逐渐与QQ媲美.那么, ...

  4. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  5. Mysql 数据库实战-建库-建表-查多表

    前文:MySql数据库基本概念 数据库 DataBase(数据库),存储数据的仓库. 第一方或第三方提供的图形化界面的客户端(DBeaver,Mariadb) 在Mysql中创建若干个数据库,每个数据 ...

  6. neo4j 图数据库初步调研 三元组、属性图、图模型、超图、RDF-f

    相关文章 neo4j 图数据库初步调研 图数据库与关系型数据库差异 demo项目(python+vue) 本文目录 相关文章 一.技术关键字 二.前言 1.什么是图 2.反规范化 三.RDF(资源描述 ...

  7. Mysql - Mysql的建表建库

    目录 Mysql5.7官方参考文档:MySQL :: MySQL 5.7 Reference Manual SQL语言说明文档: 数据库里存在的包含关系: Mysql建表建库: 1.Mysql如何建库 ...

  8. 通过flyway实现项目启动自动建库建表

    目录 前言 代码实现 添加依赖 sql文件命名方式也有讲究 代码配置 启动建库 前言 我之前研究过一个开源论坛项目,pybbs,他代码下载下来直接启动会自动建库建表,所以我拿过来研究一下(不难),这样 ...

  9. 将数据写入数据库:打开数据库,建库建表,通过php访问后台服务器(连接服务器(三种),选择数据库,设置字符集:防止数据乱码),通过php对数据库进行:增,删,改,查,操作

    前端表单设计以后,需要把数据写入数据库 将数据写入数据库:         如果涉及php.sql,wamp服务器必须打开         wamp里面有一个专门,图形化的移动窗口:          ...

  10. 数据结构 -- 图与图存储

    我们在使用像QQ ,微信,微博,快手,抖音等社交软件的过程中经常需要添加好友,关注好友和被好友关注.这个过程中 这样的社交网络中的好友关系就需要被存储下来,存储在各个公司的后台服务器之上,都会作为每个 ...

最新文章

  1. 按下电源后的几秒钟,CPU在干嘛?
  2. 计算机学院志愿公益活动,计算机学院开展学雷锋主题公益活动
  3. html5实现圆圈里带一个三角形,CSS制作箭头图标代码(圆,三角形,椭圆)c
  4. curl header设置参数
  5. 【Morgan Stanley IKM在线测试】C++
  6. Eucalyptus 云计算
  7. pi控制直流电机c语言,一种基于PI控制的直流电机调速控制系统及控制方法与流程...
  8. DWG文件怎么转换成PDF的一分钟实用技巧
  9. gdb 查看是否 栈溢出_GDB调试之二栈溢出
  10. 迷宫(Maze)项目实现
  11. 与计算机相关的潜在健康风险是什么,医疗安全与风险管理.新.ppt
  12. Baklib知识库-企业知识库管理平台
  13. 【计算机网络】路由器与交换机
  14. 冯·诺依曼体系结构总结
  15. oracle 通信通道异常,(oracle)ORA-03113: 通信通道的文件结尾错误处理
  16. 跨域的知识和解决方法
  17. 数据结构与算法——数据结构知识归纳
  18. 武汉地铁行业投资价值与运营管理分析报告2022版
  19. 数据恢复软件有哪些好用又免费的?强推这6款神器
  20. Axure无法同时打开多个.rp文件

热门文章

  1. 机器学习中数据处理与可视化的python、numpy等常用函数
  2. 人工智能AI、机器学习和深度学习之间的区别是什么?
  3. matlab添加多个legend
  4. 在VMware虚拟机下安装ubuntu16.04,及hackrf one环境配置
  5. linux dentry 存储,dentry与dentry_cache
  6. 023_Promise
  7. 033_webpack打包ES6模块化工程
  8. linux systemd 编译,交叉编译 systemd(to be continued)
  9. python生成器函数_【python】生成器和生成器函数
  10. Java关键字final、static、this、super使用总结