#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的更多相关文章

  1. POJ 1691 Painting a Board(状态压缩DP)

    Description The CE digital company has built an Automatic Painting Machine (APM) to paint a flat boa ...

  2. R绘图(2): 离散/分类变量如何画热图/方块图

    相信很多人都看到过上面这种方块图,有点像"华夫饼图"的升级版,也有点像"热图"的离散版.我在一些临床多组学的文章里面看到过好几次这种图,用它来展示病人的临床信息 ...

  3. poj 1419(图的着色问题,搜索)

    题目链接:http://poj.org/problem?id=1419 思路:只怪数据太弱!直接爆搜,按顺序搜索即可. #include<iostream> #include<cst ...

  4. POJ 1691 Painting A Board(迭代深搜)

    题目链接 调了一上午,单步的效率太低了,特别是在有递归的情况下...下午来了,输出调试了下,就发现bug了,各种混乱啊. 比较高兴的事,1Y了.本来还准备用edge1优化一下的,结果完全没用到.. # ...

  5. POJ 1691 Painting A Board(DFS)

    链接 题意 : 看了好长时间终于看懂题目了,将一个大矩形划分成若干小矩形,告诉你每个小矩形的左上角那个点和右下角那个点的坐标,告诉你这个小矩形要涂的颜色,每个颜色对应一个刷子,问你最少要使用几次刷子. ...

  6. poj很好很有层次感(转)

    OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 30 ...

  7. POJ题目分类推荐 (很好很有层次感)

    著名题单,最初来源不详.直接来源:http://blog.csdn.net/a1dark/article/details/11714009 OJ上的一些水题(可用来练手和增加自信) (POJ 3299 ...

  8. 常规DP专题练习

    POJ2279 Mr. Young's Picture Permutations 题意 Language:Default Mr. Young's Picture Permutations Time L ...

  9. Book---强连通分量

    这几天一直在做强连通,现在总结一小下 1.定义 在一个有向图中,如果任意的两个点都是相互可达的,就说这个图是强连通的,有向图的极大强连通子图,称为强连通分量 2.求法 学的是白书上的tarjan算法 ...

随机推荐

  1. [MySQL] SqlServer 迁移到 MySQL 方法介绍

    一.原则: 只迁移表结构和数据,存储过程.函数.触发器尽量自己改写,并充分测试. 迁移前,先设置好数据库的一些参数,比如默认存储引擎,默认编码等,方便后续导入. 二.方法: 1.使用MySQL Wor ...

  2. CE程序

    注:开发工具用VS2008 安装Windows mobile设备中心进行调试. 项目平台 1.窗体属性设置,然后将size改成238, 320 2.效果 3.调试过程选择“部署” 4.配置文件的简单读 ...

  3. 设置maven默认的JDK版本

    在pom文件中添加如下 : <build> <plugins> <plugin> <groupId>org.apache.maven.plugins&l ...

  4. 使用NUget发布自己的dll(转)

    一:Nuget控制台有几个常用命令 Get-Package 获取当前项目已经安装的类库 Install-Package 安装指定类库,命令格式如下:Install-Package 类库ID,示例:PM ...

  5. 编写更好的jQuery代码

    这是一篇关于jQuery的文章,写到这里给初学者一些建议. 现在已经有很多文章讨论jQuery和JavaScript的性能问题,然而,在这篇文章中我计划总结一些提升速度的技巧和一些我自己的建议来改善你 ...

  6. SpringMVC实例分析

    Spring的MVC模块 Spring提供了自己的MVC框架实现,相比Struts.WebWork等MVC模块,Spring的MVC模块显得小巧而灵活.Spring的MVC使用Controller处理 ...

  7. 根据word模板(contract_templet.tld)生成并下载word合同及根据wordHTML模板(contract_templetHTML.tld)预览合同内容

    1.action String templete=ConstantsAppParams.CONTRACT_TEMPLET_DOC;//contract_templet.tldString temple ...

  8. Junit4断言

    Junit4断言API: http://junit.org/javadoc/latest/index.html Constructor Summary protected Assert()       ...

  9. 深入探索c++对象模型

    第一章关于对象 c++在布局和存取时间的额外负担主要有virtual引起 virtual function:运行期动态绑定 virtual base class :base class多次出现在派生类 ...

  10. (分享)多功能 PDF转换器v3.0版本

    转换的效果非常不错,值得使用.破解成功的截图:这个程序必须随便输入注册码注册,不然会有水印的. 这是程序主界面了 正在测试pdf转word过程,转换结果个人感觉非常不错,跟原版pdf的格式非常接近,个 ...