poj1691绘画板
1
7
0 0 2 2 1
0 2 1 6 2
2 0 4 2 1
1 2 4 4 2
1 4 3 6 1
4 0 6 4 1
3 4 6 6 2
#include<stdio.h>
#include<stdlib.h>
int data[100][100] = {0};
int zuo[16][5];
int z = 0;
int x = 0;
int y = 0;
int min = 15;
int cun[16] = {0};
int ip[15] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
int op[15]; int num = 0;
void DFS(int col,int step);
bool issafe(int c);
bool safe(int step,int i);
int main()
{
int n;
freopen("a.txt","r",stdin);
scanf("%d",&n);
for(int t = 0;t < n;t++)
{
scanf("%d",&z);
for(int r = 0;r < z;r++)
{
for(int s = 0;s < 5;s++)
{
scanf("%d",&zuo[r][s]);
if(zuo[r][2] > x)
{
x = zuo[r][2];
}
if(zuo[r][3] > y)
{
y = zuo[r][3];
}
} } DFS(0,0);
printf("%d\n",min);
num = 0;
min = 15;
for(int f = 0;f < 17;f++)
{
op[f] = 0;
cun[f] = 0;
for(int l = 0;l < 6;l++)
{
zuo[f][l] = 0;
} }
for(int p = 0;p <= x;p++)
{
for(int q = 0;q <= y;q++)
{
data[p][q] = 0;
}
}
}
return 0;
}
void DFS(int col,int step)
{
if(step == z)
{
if(num < min)
{
min = num;
}
return;
}
for(int i = 0;i < z;i++)
{
if(safe(step,i) && cun[i] == 0 && issafe(i))
{
cun[i] = 1;
op[step] = i;
for(int a = zuo[i][0];a < zuo[i][2];a++)
{
for(int b = zuo[i][1];b < zuo[i][3];b++)
{
data[a][b] = zuo[i][4];
}
}
if(col != zuo[i][4])
{
num++;
}
DFS(zuo[i][4],step + 1);
cun[i] = 0;
op[step] = 0;
for(int a = zuo[i][0];a < zuo[i][2];a++)
{
for(int b = zuo[i][1];b < zuo[i][3];b++)
{
data[a][b] = 0;
}
}
if(col != zuo[i][4])
{
num--;
} }
} }
bool issafe(int c)
{
bool ret = true;
for(int i = 0;i < zuo[c][0];i++)
{
for(int j = zuo[c][1];j < zuo[c][3];j++)
{
if(data[i][j] == 0)
{
ret = false;
return ret;
}
}
}
return ret;
}
bool safe(int step,int i)
{
bool ret = true;
for(int k = 0;k < step;k++)
{
if(i == op[k])
{
ret = false;
break;
}
}
return ret;
}
poj1691绘画板的更多相关文章
- Android绘画板(普通绘画模式和缩放平移绘画模式)
ScaleSketchPadDemo 项目地址: demo apk体验下载 demo2 apk体验下载 用法: 进入项目根目录:https://github.com/ShaunSheep/ScaleS ...
- Android 开源可缩放平移的绘画板
ScaleSketchPadDemo 此项目包含两个模块 app1 为普通绘画板 app2 为可所发的绘画板 方便各位Android 开发者理解和使用 用法: 进入项目根目录:https://gith ...
- fabric.js和高级画板
本文介绍fabric.js框架使用,以及使用fabricjs打造一个高级画板程序. 高级画板功能介绍 全局绘制颜色选择 护眼模式.网格模式切换 自由绘制 画箭头 画直线 画虚线 画圆/椭圆/矩形/直角 ...
- 【分享】用Canvas实现画板功能
前言 PC端测试:QQ浏览器全屏绘画完成.缩小时内容会被清空,切换背景颜色内容会被重置,其他暂无发现: 手机端测试:微信内置浏览器不通过:Safari 浏览器使用画笔时没固定页面会有抖动效果,使用橡皮 ...
- 绘客708s的设置
平时也有画画的想法,虽然画的不好,但是装备还是少不了的.因此,在大概一年之前就入手了绘客的708s的绘画板,10寸乘6寸的,很大,手绘方便多了. 在这段时间内,使用绘画板的时候还是遇到了一些问题,最主 ...
- Github装(zao)逼(jia)指(da)南(fa)
Github之于工程师,类似于微博相册之于嫩模,像是个门面. 无论是晋升答辩,还是求职面试,有一个丰富的代码仓库不敢说好处有多大,但总归是有的.并且好处不局限于此,代码开源才会暴露问题才会改正,并且会 ...
- IOS 作业项目(4)步步完成 画图 程序(剧终)
// // CHViewController.m // SuperDrawingSample // // Created by JaikenLI on 13-11-21. // Copyrig ...
- Java版连连看
连连看大家应该都玩过,不多说直接上一个做好的界面截图吧,所有的功能都在上面的,要做的就只是如何去实现它们了. 差不多就是这个样子.先说一下大致的思路吧.首先编写基本的界面:把什么按钮啊,表格啊什么的都 ...
- iOS学习——(转)UIResponder详解
本文转载自:ios开发 之 UIResponder详解 我们知道UIResponder是所有视图View的基类,在iOS中UIResponder类是专门用来响应用户的操作处理各种事件的,包括触摸事件( ...
随机推荐
- CentOS 7.0 重置root密码
步骤一,开机时随便按下键盘,进入以下菜单 步骤二: 选择第一项,按e键进行修改 步骤三,定位到 ro( linux 16 or linuxefi ) 步骤四:把ro改成 “rw init=/sysro ...
- 探讨 yum 与 rpm 的安装包数量
安装包数量不相等 [root@localhost ~]# rpm -qa | wc –l #列出所有被安装的rpm package 422 [root@localhost ~]# yum list i ...
- jQuery监听键盘事件及相关操作使用
一.首先需要知道的是: 1.keydown() keydown事件会在键盘按下时触发. 2.keyup() keyup事件会在按键释放时触发,也就是你按下键盘起来后的事件 3.keypress() k ...
- Apache 支持PHP
①加载PHP模块到Apache中: LoadModule php5_module "d:\php5\php5apache2_2.dll" ②加入识别扩展名为.php文件(也可以 ...
- 精通 Oracle+Python,第 3 部分:数据解析
进行数据解析的理由不计其数,相关的工具和技巧也同样如此.但是,当您需要用这些数据做一些新的事情时,即使有“合适的”工具可能也是不够的.这一担心对于异类数据源的集成同样存在.用来做这项工作的合适工具迟早 ...
- c++构造函数谁先执行的问题
看到网上一哥们的帖子 http://blog.csdn.net/maray/article/details/7761709 东西不多就转发了 1 #include <iostream> u ...
- (C语言)char类型与int类型相加
#include <stdio.h> int main(void) { ; ; int c = a + b; a += b; printf("c=%d",c); //p ...
- JDK源码阅读(五)java.io.Serializable接口
package java.io; public interface Serializable { } (1)实现Serializable接口的类,将会被提示提供一个 serialVersionUID ...
- 非常好用的正则表达式"\\s+" - 匹配任意空白字符
说起来,博主使用过的正则场景虽然不多,但是就是在这当中,我发现"\\s+"真好用! 详解 "\\s+" 正则表达式中\s匹配任何空白字符,包括空格.制表符.换页 ...
- C#委托(Delegate)学习日记
在.NET平台下,委托类型用来定义和响应应用程序中的回调.事实上,.NET委托类型是一个类型安全的对象,指向可以以后调用的其他方法.和传统的C++函数指针不同,.NET委托是内置支持多路广播和异步方法 ...