POJ2446【建图建图】
题意:
给你一个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【建图建图】相关推荐
- Mila唐建博士《图神经网络:算法与应用》研究进展
来源:大数据文摘本文附pdf,建议阅读5分钟 本文总结了<图神经网络:算法与应用>研究进展. 图神经网络是当下研究的热点之一.HEC 蒙特利尔大学商学院助理教授唐建唐建博士在CIFAR D ...
- HQChart钉钉小程序教程1-创建K线图
HQChart钉钉小程序教程1-创建K线图,分时图 钉钉小程序HQChart效果图 步骤 1. 创建画布 2. 添加HQChart插件文件 3. import插件 4. 初始化HQChart插件 5. ...
- android微信怎么建群,微信可以建群吗 图文教你微信怎么建群
微信可以建群吗 图文教你微信怎么建群 来源:www.18183.com作者:皮卡时间:2016-06-23 微信现在可以说是大家日常生活中必不可少的一款聊天工具了,其势头甚至可以逐渐与QQ媲美.那么, ...
- 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...
- Mysql 数据库实战-建库-建表-查多表
前文:MySql数据库基本概念 数据库 DataBase(数据库),存储数据的仓库. 第一方或第三方提供的图形化界面的客户端(DBeaver,Mariadb) 在Mysql中创建若干个数据库,每个数据 ...
- neo4j 图数据库初步调研 三元组、属性图、图模型、超图、RDF-f
相关文章 neo4j 图数据库初步调研 图数据库与关系型数据库差异 demo项目(python+vue) 本文目录 相关文章 一.技术关键字 二.前言 1.什么是图 2.反规范化 三.RDF(资源描述 ...
- Mysql - Mysql的建表建库
目录 Mysql5.7官方参考文档:MySQL :: MySQL 5.7 Reference Manual SQL语言说明文档: 数据库里存在的包含关系: Mysql建表建库: 1.Mysql如何建库 ...
- 通过flyway实现项目启动自动建库建表
目录 前言 代码实现 添加依赖 sql文件命名方式也有讲究 代码配置 启动建库 前言 我之前研究过一个开源论坛项目,pybbs,他代码下载下来直接启动会自动建库建表,所以我拿过来研究一下(不难),这样 ...
- 将数据写入数据库:打开数据库,建库建表,通过php访问后台服务器(连接服务器(三种),选择数据库,设置字符集:防止数据乱码),通过php对数据库进行:增,删,改,查,操作
前端表单设计以后,需要把数据写入数据库 将数据写入数据库: 如果涉及php.sql,wamp服务器必须打开 wamp里面有一个专门,图形化的移动窗口: ...
- 数据结构 -- 图与图存储
我们在使用像QQ ,微信,微博,快手,抖音等社交软件的过程中经常需要添加好友,关注好友和被好友关注.这个过程中 这样的社交网络中的好友关系就需要被存储下来,存储在各个公司的后台服务器之上,都会作为每个 ...
最新文章
- 按下电源后的几秒钟,CPU在干嘛?
- 计算机学院志愿公益活动,计算机学院开展学雷锋主题公益活动
- html5实现圆圈里带一个三角形,CSS制作箭头图标代码(圆,三角形,椭圆)c
- curl header设置参数
- 【Morgan Stanley IKM在线测试】C++
- Eucalyptus 云计算
- pi控制直流电机c语言,一种基于PI控制的直流电机调速控制系统及控制方法与流程...
- DWG文件怎么转换成PDF的一分钟实用技巧
- gdb 查看是否 栈溢出_GDB调试之二栈溢出
- 迷宫(Maze)项目实现
- 与计算机相关的潜在健康风险是什么,医疗安全与风险管理.新.ppt
- Baklib知识库-企业知识库管理平台
- 【计算机网络】路由器与交换机
- 冯·诺依曼体系结构总结
- oracle 通信通道异常,(oracle)ORA-03113: 通信通道的文件结尾错误处理
- 跨域的知识和解决方法
- 数据结构与算法——数据结构知识归纳
- 武汉地铁行业投资价值与运营管理分析报告2022版
- 数据恢复软件有哪些好用又免费的?强推这6款神器
- Axure无法同时打开多个.rp文件
热门文章
- 机器学习中数据处理与可视化的python、numpy等常用函数
- 人工智能AI、机器学习和深度学习之间的区别是什么?
- matlab添加多个legend
- 在VMware虚拟机下安装ubuntu16.04,及hackrf one环境配置
- linux dentry 存储,dentry与dentry_cache
- 023_Promise
- 033_webpack打包ES6模块化工程
- linux systemd 编译,交叉编译 systemd(to be continued)
- python生成器函数_【python】生成器和生成器函数
- Java关键字final、static、this、super使用总结