【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 ...
随机推荐
- pc机安装centos6.5,提示sda必须有一个GPT磁盘标签处理
1.在进入安装界面,也就出现图形界面时,对它命令首先创建gpt --按ctrl+alt+f2的组合键,然后进入命令行 --进行如下操作输入parted输入mklabel gpt /dev/sda在提示 ...
- HDU-1015(暴力)
Safecracker Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is loc ...
- PHP负载均衡
待更新 版权声明:本文为博主原创文章,未经博主允许不得转载.
- ( 转 )Github配置
以下转自 http://liuzhijun.iteye.com/blog/1457207 有问题请联系我删除. -----———————————————————————— 如果你的代码不知道放哪里好, ...
- MyBatis的学习总结六:Mybatis的缓存【参考】
一.Mybatis缓存介绍 正如大多数持久层框架一样,Mybatis同样提供了一级缓存和二级缓存 1.一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session, ...
- C#转Python计划
1.学习python语法,完成python_cookbook上的代码. 目标:熟悉python语法和开发习惯,以及调试方法. 2.学习使用Django框架,完成一个基于Django框架的项目,发布到g ...
- jQuery 选择器【1】
jQuery 选择器 请使用我们的 jQuery 选择器检测器 来演示不同的选择器. 选择器 实例 选取 * $("*") 所有元素 #id $("#lastname&q ...
- Js浏览器对象
Js浏览器对象——window对象 1.window对象: (1)window对象是BOM的核心,window对象指当前的浏览器窗口. (2)所有的JavaScript全局对象.函数以及变量均自动成为 ...
- trac的安装和配置
trac是一个很好用的基于python的任务管理系统. 这个软件主要有如下特点: 1)tickit管理,可以设定各种各样的ticket,然后进行修改和完成. 2)wiki管理,可以编写各种文档. 3) ...
- mysql 中执行的 sql 注意字段之间的反向引号和单引号
如下的数据表 create table `test`( `id` int(11) not null auto_increment primary key, `user` varchar(100) no ...