题意:

      给你一个n*m的格子,问你能不能用1*2的格子把他铺满,有的位置是不能被铺的。

思路:

     水题,直接把个相邻的并且都是可以铺的点连一条边然后匹配一遍就行了,提醒一个地方,就是输入不能铺的坐标的时候是 先输入列再输入行。


#include<stdio.h>
#include<string.h> #define N_node 1500
#define N_edge 6000 typedef struct
{
int to ,next;
}STAR; STAR E[N_edge];
int list[N_node] ,tot;
int mk_dfs[N_node] ,mk_gx[N_node];
int map[40][40]; void add(int a ,int b)
{
E[++tot].to = b;
E[tot].next = list[a];
list[a] = tot;
} int DFS_XYL(int x)
{
for(int k = list[x] ;k ;k = E[k].next)
{
int to = E[k].to;
if(mk_dfs[to]) continue;
mk_dfs[to] = 1;
if(mk_gx[to] == -1 || DFS_XYL(mk_gx[to]))
{
mk_gx[to] = x;
return 1;
}
}
return 0;
} int main ()
{
int n ,m ,k ,i ,j;
int a ,b;
while(~scanf("%d %d %d" ,&n ,&m ,&k))
{
memset(map ,0 ,sizeof(map));
for(i = 1 ;i <= k ;i ++)
{
scanf("%d %d" ,&b ,&a);
map[a][b] = 1;
}
memset(list ,0 ,sizeof(list));
tot = 1;
for(i = 1 ;i <= n ;i ++)
for(j = 1 ;j <= m ;j ++)
{
if(map[i][j]) continue;
int now = (i - 1) * m + j;
if(i < n && !map[i+1][j])
add(now ,now + m);
if(j < m && !map[i][j+1])
add(now ,now + 1);
if(i > 1 && !map[i-1][j])
add(now ,now - m);
if(j > 1 && !map[i][j-1])
add(now ,now - 1);
}
int sum = 0;
memset(mk_gx ,255 ,sizeof(mk_gx));
for(i = 1 ;i <= n * m ;i ++)
{
memset(mk_dfs ,0 ,sizeof(mk_dfs));
sum += DFS_XYL(i);
}
if(sum == n * m - k)
puts("YES");
else
puts("NO");
}
return 0;
}

最新文章

  1. Twisted
  2. css后代选择器(div.class中间不带空格)
  3. (整理)SQL server 2012 中文乱码与5030错误
  4. Spring+Mybatis+jQuery.Pagination.js异步分页及JsonConfig的使用
  5. ssh 无密码登录远程服务器
  6. java 存储oracle的clob字段
  7. SSH Session Recorder
  8. SQL Server 日期相关
  9. 基于ASP.MVC票据FormsAuthenticationTicket身份认证
  10. 微信小程序 sha1 实现密码加密
  11. 机器学习基石笔记:04 Feasibility of Learning
  12. 关于Flutter初始化流程,我必须告诉你的是...
  13. Windows结构化异常处理浅析
  14. DVWA--XSS解题过程
  15. h5做列表 水平分割
  16. 绩效沟通-BEST原则
  17. hadoop的两大核心之一:HDFS总结
  18. Scala学习(二)--- 控制结构和函数
  19. 用node.js写一个简单爬虫,并将数据导出为 excel 文件
  20. swift开发之--UISearchBar的使用/UISearchController的使用

热门文章

  1. 通达OA 页面敏感信息-2013/2015版本
  2. 【Azure API 管理】从微信小程序访问APIM出现200的空响应的问题中发现CORS的属性[terminate-unmatched-request]功能
  3. P2014 选课 题解(树形DP)
  4. UI透明欺诈
  5. .Net5 下Dictionary 为什么可以在foreach中Remove
  6. 电影AI修复,让重温经典有了新的可能
  7. PTA 将数组中的数逆序存放
  8. time模块&amp;datetime模块
  9. Detach blobs with a contact point
  10. Android Studio中Switch控件有关 thumb 和 track 用法