链接

dfs了 写得有点乱

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define INF 0xfffffff
struct node
{
int lx,ly,rx,ry,d;
}co[];
int kk[][],o[];
int num[][],oo[],ans,fk[];
int n;
void dfs(int u,int de,int vis[])
{
int i,j,ff=,vv[];
if(de>ans)
return ;
for(i = ; i <= oo[u] ; i++)
{
int v = num[u][i];
ff = ;
for(j = ; j <= o[v] ; j++)
{
int ko = kk[v][j];
if(!vis[ko])
{
ff=;
break;
}
}
if(ff)
vis[v]=;
}
for(i = ; i <= n ; i++)
if(!vis[i])
break;
if(i==n+)
{
ans = de;
return ;
}
for(i = ; i <= n ; i++)
vv[i] = vis[i];
for(i = ; i <= n ; i++)
{
if(!vis[i])
{
for(j = ; j <= o[i] ; j++)
{
int x = kk[i][j];
if(!vis[x])
break;
}
if(j>o[i])
dfs(co[i].d,de+,vis);
}
for(j = ; j <= n ; j++)
vis[j] = vv[j];
}
}
int main()
{
int i,j,t,vis[];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(vis,,sizeof(vis));
memset(kk,,sizeof(kk));
memset(o,,sizeof(o));
memset(oo,,sizeof(oo));
memset(fk,,sizeof(fk));
ans = INF;
for(i = ; i <= n ; i++)
{
scanf("%d%d%d%d%d",&co[i].ly,&co[i].lx,&co[i].ry,&co[i].rx,&co[i].d);
oo[co[i].d]++;
num[co[i].d][oo[co[i].d]] = i;
}
for(i = ; i <= n ; i++)
{
for(j = ; j <= n ; j++)
{
if(i==j)
continue;
if(((co[j].lx>=co[i].lx&&co[j].lx<co[i].rx)||(co[j].rx<=co[i].rx&&co[j].rx>co[i].lx))&&(co[j].ry<=co[i].ly))
{
o[i]++;
kk[i][o[i]] = j;
}
}
}
for(i = ; i <= n ; i++)
{
if(!o[i]&&!fk[co[i].d])
{
fk[co[i].d] = ;
dfs(co[i].d,,vis);
}
memset(vis,,sizeof(vis));
}
printf("%d\n",ans);
}
return ;
}

最新文章

  1. 根据对象的某一属性进行排序的js代码(如:name,age)
  2. [MAC]2015款MACBOOK使用BOOTCAMP安装WIN8.1+多分区
  3. 失眠害死人-jQuery&amp;AJAX
  4. linux学习之-vsftp
  5. iOS开发 判断字符串是不是网址
  6. Netsharp快速入门(之18) 平台常用功能(工作区相关)
  7. datagridview中combobox类型的cell选中一个下拉列表之后,立即生效的事件
  8. LEARUN 开发框架 /aspnetboilerplate ----上海力软信息技术有限公司
  9. Jqgrid入门-操作表格的数据(二)
  10. JBOSS实现RMI时注意的问题
  11. java中不常见的keyword:strictfp,transient
  12. 在UITouch事件中画圆圈-iOS8 Swift基础教程
  13. 在VC++中启用内存泄露检测
  14. linux添加硬盘分区挂载教程
  15. Day5_递归_二分法
  16. 容器平台自动化CI/CD流水线实践之一:环境概述
  17. JavaScript对象数组根据某属性sort升降序排序
  18. Java ceil() 方法
  19. push到Git时常见的失败
  20. Python学习基础(二)——集合 深浅拷贝 函数

热门文章

  1. RabbitMQ远程访问配置
  2. JS中undefined和null的区别
  3. 扩展:gridview 空数据时显示表头
  4. HTML5元素拖拽实现示例
  5. Maven插件实现的autoconfig机制(转)
  6. 根据版本的不同整理所有的绿色SQL Server
  7. LED字符设备驱动实例及测试代码
  8. 使用Python编程语言连接MySQL数据库代码
  9. 2016041601 - maven用途
  10. Java学习--Equals与“==”