【HDOJ】2589 正方形划分
暴力DFS
/* 2589 */
#include <cstdio>
#include <cstring>
#include <cstdlib> #define MAXN 21 bool map[MAXN][MAXN];
bool visit[MAXN][MAXN];
int l, n; bool dfs(int cnt) {
int i, j, k;
int x, y, r;
int ex, ey;
bool flag = true; for (x=; x<=l; ++x) {
for (y=; y<=l; ++y) {
if (!visit[x][y]) {
flag = false;
break;
}
}
if (flag == false)
break;
}
if (flag) {
if (cnt == )
return true;
else
return false;
}
flag = true;
for (r=; flag&&r<l; ++r) {
ex = x + r;
ey = y + r;
if (ex>l || ey>l)
break;
k = ;
for (i=x; i<=ex; ++i) {
for (j=y; j<=ey; ++j) {
if (map[i][j])
++k;
if (k> || visit[i][j]) {
flag = false;
break;
}
}
if (flag == false)
break;
}
if (k== && flag) {
for (i=x; i<=ex; ++i)
for (j=y; j<=ey; ++j)
visit[i][j] = true;
if (dfs(cnt - ))
return true;
for (i=x; i<=ex; ++i)
for (j=y; j<=ey; ++j)
visit[i][j] = false;
}
}
return false;
} int main() {
int t;
int i, j, k;
bool flag; #ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
#endif scanf("%d", &t);
while (t--) {
scanf("%d %d", &l, &n);
memset(map, false, sizeof(map));
memset(visit, false, sizeof(visit));
flag = true;
for (i=; i<n; ++i) {
scanf("%d %d", &j, &k);
if (map[j][k])
flag = false;
map[j][k] = true;
}
if (flag) {
flag = dfs(n);
}
if (flag)
puts("YES");
else
puts("NO");
} return ;
}
【HDOJ】2589 正方形划分的更多相关文章
- Codeforces Round #524 (Div. 2) D. Olya and magical square
D. Olya and magical square 题目链接:https://codeforces.com/contest/1080/problem/D 题意: 给出一个边长为2n的正方形,每次可以 ...
- HDOJ题目4417 Super Mario(划分树求区间比k小的个数+二分)
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- 并查集(HDOJ 1856)
并查集 英文:Disjoint Set,即“不相交集合” 将编号分别为1…N的N个对象划分为不相交集合, 在每个集合中,选择其中某个元素代表所在集合. 常见两种操作: n 合并两个集合 ...
- 【HDOJ】3727 Jewel
静态区间第K大值.主席树和划分树都可解. /* 3727 */ #include <iostream> #include <sstream> #include <stri ...
- 【HDOJ】3473 Minimum Sum
划分树解.主席树解MLE. /* 3473 */ #include <iostream> #include <sstream> #include <string> ...
- HDOJ 4417 - Super Mario 线段树or树状数组离线处理..
题意: 同上 题解: 抓着这题作死的搞~~是因为今天练习赛的一道题.SPOJ KQUERY.直到我用最后一种树状数组通过了HDOJ这题后..交SPOJ的才没超时..看排名...时间能排到11名了..有 ...
- 算法——A*——HDOJ:1813
Escape from Tetris Time Limit: 12000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 基于octree的空间划分及搜索操作
(1) octree是一种用于管理稀疏3D数据的树形数据结构,每个内部节点都正好有八个子节点,介绍如何用octree在点云数据中进行空间划分及近邻搜索,实现“体素内近邻搜索(Neighbors wi ...
- hdoj 1518 Square 【dfs】
题意:给出n个(不同长度的)棍子,问能不能将他们构成一个正方形. 策略:深搜. hdoj 1455的简化版 代码: #include <stdio.h> #include <stri ...
随机推荐
- Google Map API v2 (三)----- 地图上添加标记(Marker),标记info窗口,即指定经纬度获取地址字符串
接上篇 http://www.cnblogs.com/inkheart0124/p/3536322.html 1,在地图上打个标记 private MarkerOptions mMarkOption; ...
- Java根据ip地址获取Mac地址,Java获取Mac地址
Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...
- opencv多平台环境搭建及使用
windows平台: 一.安装opencv 下载地址:http://opencv.org/ 依据平台下载相应源码包 安装流程就是一个解压过程.不再赘述. 解压完,效果图: 源码树结构参看http:// ...
- js中 的这些距离你知道吗?
- (转)网站隔几天打不开,多次重启Apache解决办法
网站打不开了重启一下apache又好了,但过二天又打不开了,只有重启一下才好,基本上二天重起一次,本文主要解决这个问题 工具/原料 linux服务器 网站 方法/步骤 注意观察cpu占用情况{:s ...
- GPS定位,经纬度附近地点查询–C#实现方法
目前的工作是需要手机查找附近N米以内的商户,功能如下图 数据库中记录了商家在百度标注的经纬度(如:116.412007, 39.947545), 最初想法 以圆心点为中心点,对半径做循环,半径每增加 ...
- 非常的奇葩,终于解决了硬盘从盘盘符消失的问题 http://bbs.gamersky.com/thread-1712710-1-1.html (出处: 游民星空论坛)
本人用电脑也十多年了,硬盘的问题也碰到过不少.但最近却碰到了一个很奇葩的问题.就是安装了一块全新的SSD硬盘当从盘,但在装上之后,在我的电脑中却不显示,没有盘符.不过打开系统磁盘管理却能显示硬盘信息. ...
- 图像载入 imread()[OpenCV 笔记4]
Mat imread( ); filename 载入的图像名: flags 指定加载图像的颜色类型,默认载入三通道彩色图像, 如果取枚举类型 (OpenCV3中暂时失效),则定义如下 enum{ CV ...
- Object layout in C++ and access control
The variables are guaranteed to be laid out contiguously, as in C. However, the access blocks may no ...
- Mysql创建删除索引
1.查看某个表中的索引 show index from 表名 2.为某个表创建索引 alter table 表名 add index 索引名(列名) //此种方式创建一般的索引 alter ta ...