http://acm.nyist.net/JudgeOnline/problem.php?pid=16

题意:有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。

思路:先对长和宽来此排序,再按照要求构图,完成之后,直接记忆化搜索,值得注意的地方是你不能只从第一个点搜索,而是要从每个点搜索.......我自己想的时候想到这个了,编写的时候忘了,wa一次..........

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define maxx 10000000
struct node
{
int x,y;
}s[1100];
int vist[1100][1100],n,dp[1100]; int cmp(const node a,const node b)
{
if(a.x<b.x)
return 1;
else if(a.x==b.x&&a.y<b.y)
return 1;
else return 0;
}
int dfs(int num)
{
if(dp[num]>0) return dp[num];
dp[num]=1;
for(int i=1;i<=n;i++)
{
if(vist[num][i])
{
int tmp=dfs(i)+1;
if(dp[num]<tmp)
dp[num]=tmp;
}
}
return dp[num];
}
int main()
{
int text;
scanf("%d",&text);
while(text--)
{
scanf("%d",&n);
memset(vist,0,sizeof(vist));
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
s[i].x=x;
s[i].y=y;
}
sort(s+1,s+1+n,cmp);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if((s[i].x<s[j].x&&s[i].y<s[j].y)||(s[i].x<s[j].y&&s[i].y<s[j].x))
{
vist[i][j]=1;
}
}
int maxn=0;
for(int i=1;i<=n;i++)
{
int tmp1=dfs(i);
if(tmp1>maxn)
maxn=tmp1;
}
printf("%d\n",maxn);
}
return 0;
}

nyoj16矩形嵌套(第一道dp关于dag的题目)的更多相关文章

  1. NYOJ16 矩形嵌套 【DAG上的DP/LIS】

    矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c ...

  2. NYOJ16 矩形嵌套(DAG最长路)

    矩形嵌套 紫书P262 这是有向无环图DAG(Directed Acyclic Graph)上的动态规划,是DAG最长路问题 [题目链接]NYOJ16-矩形嵌套 [题目类型]DAG上的dp & ...

  3. NYOJ 16 矩形嵌套(经典DP)

    http://acm.nyist.net/JudgeOnline/problem.php?pid=16 矩形嵌套 时间限制:3000 ms  |           内存限制:65535 KB 难度: ...

  4. NYOJ 16 矩形嵌套 (DAG上的DP)

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 有n个矩形,每个矩形能够用a,b来描写叙述.表示长和宽.矩形X(a,b)能够嵌套在矩形Y(c,d)中当且仅当 ...

  5. NYOJ 16 矩形嵌套【DP】

    解题思路:呃,是看的紫书上面的做法,一个矩形和另一个矩形之间的关系就只有两种,(因为它自己是不能嵌套自己的),可嵌套,不可嵌套,是一个二元关系,如果可嵌套的话,则记为1,如果不可嵌套的话则记为0,就可 ...

  6. NYOJ - 矩形嵌套(经典dp)

    矩形嵌套时间限制:3000 ms | 内存限制:65535 KB 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b< ...

  7. 矩形嵌套-记忆化搜索(dp动态规划)

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 有n个矩形,每个矩形能够用a,b来描写叙述,表示长和宽. 矩形X(a,b)能够嵌套在矩形Y(c,d)中当且仅 ...

  8. DAG模型(矩形嵌套)

    推荐在线例题:http://acm.nyist.net/JudgeOnline/problem.php?pid=16 题摘: 矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难 ...

  9. 矩形嵌套(dp)

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...

随机推荐

  1. 语音信号处理之(一)动态时间规整(DTW)

    语音信号处理之(一)动态时间规整(DTW) zouxy09@qq.com 原文:http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要 ...

  2. 最佳实践扩展Windows窗体DataGridView控件 .net 4.5 附示例代码

    Windows窗体DataGridView控件的性能调优.net 4.5   在处理大量数据时, DataGridView 控制可以消耗大量的内存开销,除非你仔细地使用它. 在客户有限的内存,你可以避 ...

  3. [Angular] Angular Elements Intro

    Make sure install the latest Angular v6 with Angular CLI. Checkout ght Github for the code. 1. Creat ...

  4. Activiti 流程启动及节点流转源代码分析

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 本文主要是以activiti-study中的xiaomage.xml流程图为例进行跟踪分析 详细的 ...

  5. eclipse解决editor does not contain a main type的方法

    转自:http://blog.csdn.net/huazhangena/article/details/7349044 写在前面的话:我的也出现这个问题,但是解决方法和转发的内容不太一样,原理一样,我 ...

  6. (剑指Offer)面试题10:二进制中1的个数

    题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路: 很明显,这道题考察的是位运算. 1.依次将整数右移,判断整数最后一位是否为1(&1): 问题:如果该整数为负数 ...

  7. GIS中要素的捕捉以及C++实现

    这篇文章早在去年就写出来了,但是由于当时毕业论文有一段是直接引用了我的这篇文章,怕引起查重的麻烦就删掉了,在此,重新挂出来和大家一起分享. 要素的选择,也称为要素的捕捉,在CAD.计算机图形学和地理信 ...

  8. 右键菜单 GenericMenu

    http://www.cnblogs.com/zhaoqingqing/p/3799294.html 自定义窗口中使用右键菜单: // This example shows how to create ...

  9. 视频编码格式转换 MP4

    视频工具有很多,如专业的premiere,但是我们只要涉及后期转换,不涉及制作,所以用不到这末专业的工具. 一般来说,使用暴风转码或者qq影音工具就足以应付我们的日常转换需求,下面以qq影音软件做说明 ...

  10. Oracle url编码与解码

      Oracle url编码与解码 CreateTime--2018年3月30日17:26:36 Author:Marydon 一.url编码 实现方式:utl_url.escape() 说明:utl ...