poj 1691 图方块 end
#include<iostream>
int m,n;
typedef struct node
{
int upx,upy;
int dox,doy;
int c;
}node;
node point[20];
int visit[20];
int map[20][20];
int indegree[20];
int min=1000;
void handle() //建立有向图
{ for(int i=0;i<20;i++)
{
visit[i]=0;
indegree[i]=0;
}
for(int i=0;i<20;i++)
{ for(int j=0;j<20;j++)
{
map[i][j]=0;
} }
for(int i=0;i<n;i++)
{ for(int j=0;j<n;j++)
{
if(point[i].dox==point[j].upx&&!(point[i].upy>point[j].doy||point[i].doy<point[j].upy))
{ map[i][j]=1; //存储是否连接
indegree[j]++; //存上面与他相邻矩形的数目
}
} }
}
void dfs(int j_num,int col,int o_num) // 染色的矩形数目 当前画笔的颜色 当前已经用画笔的数目
{
if(o_num>=min)
{
return;
} if(j_num==n)
{
min=o_num;
//printf("%d",o_num); }
for(int i=0;i<n;i++)
{ if(!(indegree[i])&&!visit[i])
{
visit[i]=1;
for(int j=0;j<n;j++)
{
if(map[i][j])
{
indegree[j]--;
}
}
if(point[i].c==col)
{
dfs(j_num+1,col,o_num);
}else{
dfs(j_num+1,point[i].c,o_num+1);
}
visit[i]=0;
for(int j=0;j<n;j++)
if(map[i][j])
indegree[j]++;
}
}
}
int main()
{
freopen("input.txt","r",stdin);
scanf("%d",&m);
while(m--)
{ min=1000;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d%d%d%d",&point[i].upx,&point[i].upy,&point[i].dox,&point[i].doy,&point[i].c);
}
handle();
dfs(0,0,0);
printf("%d\n",min);
}
return 0; }
poj 1691 图方块 end的更多相关文章
- POJ 1691 Painting a Board(状态压缩DP)
Description The CE digital company has built an Automatic Painting Machine (APM) to paint a flat boa ...
- R绘图(2): 离散/分类变量如何画热图/方块图
相信很多人都看到过上面这种方块图,有点像"华夫饼图"的升级版,也有点像"热图"的离散版.我在一些临床多组学的文章里面看到过好几次这种图,用它来展示病人的临床信息 ...
- poj 1419(图的着色问题,搜索)
题目链接:http://poj.org/problem?id=1419 思路:只怪数据太弱!直接爆搜,按顺序搜索即可. #include<iostream> #include<cst ...
- POJ 1691 Painting A Board(迭代深搜)
题目链接 调了一上午,单步的效率太低了,特别是在有递归的情况下...下午来了,输出调试了下,就发现bug了,各种混乱啊. 比较高兴的事,1Y了.本来还准备用edge1优化一下的,结果完全没用到.. # ...
- POJ 1691 Painting A Board(DFS)
链接 题意 : 看了好长时间终于看懂题目了,将一个大矩形划分成若干小矩形,告诉你每个小矩形的左上角那个点和右下角那个点的坐标,告诉你这个小矩形要涂的颜色,每个颜色对应一个刷子,问你最少要使用几次刷子. ...
- poj很好很有层次感(转)
OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 30 ...
- POJ题目分类推荐 (很好很有层次感)
著名题单,最初来源不详.直接来源:http://blog.csdn.net/a1dark/article/details/11714009 OJ上的一些水题(可用来练手和增加自信) (POJ 3299 ...
- 常规DP专题练习
POJ2279 Mr. Young's Picture Permutations 题意 Language:Default Mr. Young's Picture Permutations Time L ...
- Book---强连通分量
这几天一直在做强连通,现在总结一小下 1.定义 在一个有向图中,如果任意的两个点都是相互可达的,就说这个图是强连通的,有向图的极大强连通子图,称为强连通分量 2.求法 学的是白书上的tarjan算法 ...
随机推荐
- maven dependencies 里面的包怎么导出
进入工程pom.xml 所在的目录下,输入以下命令:mvn dependency:copy-dependencies -DoutputDirectory=lib更简单的 mvn dependency: ...
- STM32 USB转串口驱动 Virtual COM Port Driver(V1.3.1)
将stm32的USB口接到PC端后,PC端会要求安装一个STM32 USB Virtual COM Port Driver,然后就可以用串口调试助手对其操作了
- Windows Driver Frameworks
MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff557565(v=vs.85).aspx
- VS中的活动debug和活动cpu
“活动”的含义就是当前项目所用的模式和平台.项目中的”活动“继承于解决方案中的配置.
- CentOS下Apache开启Gzip网页压缩功能
1.进入/etc/httpd/conf下打开httpd.conf文件 开启Gzip压缩功能,即去掉LoadModule deflate_module modules/mod_deflate.so这行前 ...
- problem during schema create,statement create sequence act_evt_log_seq
今天在调试程序的时候出现"problem during schema create,statement create sequence act_evt_log_seq"这个错误,跟 ...
- java获取文件夹下文件名
public static String [] getFileName(String path) { File file = new File(path); String [] fileName = ...
- Flasky学习笔记(一)
1. app.run(debug=True,host='10.0.2.15',port=8000)自定义host及port;
- system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)
类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...
- 单片机联网需求攀升 WIZnet全硬件TCP/IP技术崛起
--新华龙电子为韩国WIZnet公司网络芯片授权代理商,具有20多年的专业团队IC应用开发实力-- 如今不管是在企业还是小区.街道,甚至是居民室内,以太网接口无处不在.有鉴于此,电子设备必将向更加智能 ...