链接

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 ;
}

poj1691(dfs)的更多相关文章

  1. 素数环(dfs+回溯)

    题目描述: 输入正整数n,把整数1,2...n组成一个环,使得相邻两个数和为素数.输出时从整数1开始逆时针排列并且不能重复: 例样输入: 6 例样输出: 1 4 3 2 5 6 1 6 5 2 3 4 ...

  2. (DFS)codevs1004-四子连棋

    题目地址 方法是建立dfs,并在其中加入pre变量,记录之前移动的是W还是B.外面套for循环,从1步开始逐次递增,直到在i步时可以走完(dfs返回1),break退出循环,即为最短步. 本题的关键主 ...

  3. LeetCode Subsets II (DFS)

    题意: 给一个集合,有n个可能相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: 看这个就差不多了.LEETCODE SUBSETS (DFS) class Solution { publ ...

  4. LeetCode Subsets (DFS)

    题意: 给一个集合,有n个互不相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: DFS方法:由于集合中的元素是不可能出现相同的,所以不用解决相同的元素而导致重复统计. class Sol ...

  5. HDU 2553 N皇后问题(dfs)

    N皇后问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 在 ...

  6. POJ 4003 Bob’s Race && HDU4123 Bob’s Race (dfs+rmq)

    Bob’s Race Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 378   Accepted: 119 Descript ...

  7. 深搜(DFS)广搜(BFS)详解

    图的深搜与广搜 一.介绍: p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orp ...

  8. 【算法导论】图的深度优先搜索遍历(DFS)

    关于图的存储在上一篇文章中已经讲述,在这里不在赘述.下面我们介绍图的深度优先搜索遍历(DFS). 深度优先搜索遍历实在访问了顶点vi后,访问vi的一个邻接点vj:访问vj之后,又访问vj的一个邻接点, ...

  9. 深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现

    1.基础部分 在图中实现最基本的操作之一就是搜索从一个指定顶点可以到达哪些顶点,比如从武汉出发的高铁可以到达哪些城市,一些城市可以直达,一些城市不能直达.现在有一份全国高铁模拟图,要从某个城市(顶点) ...

随机推荐

  1. (转)unity开发相关环境(vs、MonoDevelop)windows平台编码问题

    转自: http://www.cnblogs.com/sevenyuan/archive/2012/12/06/2805114.html 1.unity会爆出错误: There are inconsi ...

  2. (转) VS2012程序打包部署详解

    程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的.     经过翻阅资料发现 ...

  3. error RC1205: invalid code page

    Get followings error and warnings when building project: error RC1205: invalid code pagewarning C400 ...

  4. strcpy(),string使用问题

    两个CString,把一个赋值给另外一个,用strncpy出现问题,直接=赋值正确了,不知道为什么?

  5. 九度OJ 1501 最大连续子序列乘积 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1501 题目描述: 给定一个浮点数序列(可能有正数.0和负数),求出一个最大的连续子序列乘积. 输入: 输入可能包含 ...

  6. 用Objective-C的foundation框架解决表达式求值问题

    主要思想: 本程序分2个类 一个是ExpressionString类,主要用于存储表达式以及对它进行求值.以下是该类中的内容: (NSString *)expString//用于存储要计算的表达式: ...

  7. 解决 IE 不支持 document.getElementsByClassName() 的方法

    //create method getElementsByClassName for document if(!document.getElementsByClassName){ document.g ...

  8. 算法之插入排序(inertionSort)

    插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的.个数加一的有序数据,适用于少量数据的排序,时间复杂度为O(n^2). 插入排序属于稳定排序. 插入排序不需要构造新的数据 ...

  9. 关于Active控件的电子签名 转

    关于Active控件的电子签名 两种方案:一是自己制作证书,客户端安装证书后就可以识别该控件:二就是买官方的喽,在国内找verisign的代理,负责各种电子签名,任何一台浏览器都可以识别该证书.该公司 ...

  10. 现代php开发

    最近在看 Modern PHP 很薄的一本书,有种发现新大陆的感觉,强烈推荐.php是一门脚本语言,随着web的发展而发展起来,最早的时候大家还是混编html,php,完全没有工程项目的概念,(我们公 ...