zoukankan      html  css  js  c++  java
  • P1375 嵌套矩形

    题目Problem

    嵌套矩形

    Time Limit: 1000ms    Memory Limit: 131072KB
    描述Descript.

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

    输入Input
    第1行n (n<=2000)
    第2到n+1行每行两个数a,b,表示这个矩形的长和宽
    输出Output
    一个数,最多符合条件的矩形数目
    样例Sample

    输入数据


    3
    1 5
    6 2
    3 4

    输出数据


    2
    备注Hint
     
    smartoj没评测机啊。。。
    也不知道对不对,,
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 using namespace std;
     6 const int MAXN=2001;
     7 void read(int & n)
     8 {
     9     char c='+';int x=0;bool flag=0;
    10     while(c<'0'||c>'9')
    11     {c=getchar();if(c=='-')flag=1;}
    12     while(c>='0'&&c<='9')
    13     {x=x*10+(c-48);c=getchar();}
    14     flag==1?n=-x:n=x;
    15 }
    16 int map[MAXN][MAXN];
    17 struct node
    18 {
    19     int hang;
    20     int lie;
    21     int id;
    22 }a[MAXN*4];
    23 int ans=0;
    24 int n;
    25 int dis[MAXN];
    26 int M_s(int p)
    27 {
    28     ans=max(ans,dis[p]);
    29     if(dis[p])
    30     return dis[p];
    31     for(int i=1;i<=n;i++)
    32     {
    33         if(map[p][i])
    34         return dis[p]=max(dis[p],M_s(i)+1);
    35     }
    36 }
    37 int main()
    38 {
    39     read(n);
    40     for(int i=1;i<=n;i++)
    41     {
    42         int x,y;
    43         read(x);read(y);
    44         a[i].hang=x;a[i].lie=y;a[i].id=i;
    45     }
    46     for(int i=1;i<=n;i++)
    47         for(int j=1;j<=n;j++)
    48             if(i!=j)
    49                 if((a[i].hang<a[j].hang&&a[i].lie<a[j].lie)||(a[i].lie<a[j].hang&&a[i].hang<a[j].lie))
    50                     map[a[i].id][a[j].id]=1;
    51     
    52     M_s(1);
    53     int out=1;
    54     for(int i=1;i<=n;i++)
    55     {
    56         out=max(out,dis[i]+1);
    57     }
    58     printf("%d",out);
    59     return 0;
    60 }
     
  • 相关阅读:
    Valid Parentheses [LeetCode 20]
    线性回归的Spark实现 [Linear Regression / Machine Learning / Spark]
    逻辑回归的分布式实现 [Logistic Regression / Machine Learning / Spark ]
    Python爬虫之豆瓣-新书速递-图书解析
    安装软件包
    打包与压缩
    linux与linux间,互相拷贝文件
    网络管理
    重定向和管道
    索引
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/7085452.html
Copyright © 2011-2022 走看看