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