Description

给出N个矩形(1≤N≤100)和它的长和宽(不超过1000),写一个程序找出最大的K,使得
有K个矩形满足层层包含的关系,即里层的矩形被所有外层的矩形包含.一个矩形P1包含另一个
矩形P2,则P2的一边小于P1的一边,并且P9的另一边不超过P1的另一边.如果两个矩形相同,视为不包含.如2 x 1的矩形被2x2的矩形包含,不被1 x 2的矩形包含.
注意:矩形的顺序可以是任意的,且矩形可以旋转.

Input

第1行:整数N.
第2到N+1行:矩形的长和宽,均为整数.

Output

一行,输出最大的包含数K.

Sample Input

4
8 14
16 28
29 12
14 8

Sample Output

2
由于数据小,所以可以先把相同的矩形全部删去,然后处理的时候,输入保证长小于宽,再用长排序,求宽的最长不下降序列(本来可以写成nlogn的,但是想偷个懒~)
 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cmath>
 4 #include<algorithm>
 5 using namespace std;
 6 const int maxn=1005;int maxx=0;
 7 int a[maxn],b[maxn],c[maxn];
 8 bool map[maxn][maxn];
 9 struct node{
10     int l,r;
11 }w[maxn];
12 int n;
13 bool comp(const node &q,const node &e)
14 {
15     if(q.l==e.l)return q.r<e.r;
16     return q.l<e.l;
17 }
18 int main()
19 {
20     freopen("recks.in","r",stdin);
21     freopen("recks.out","w",stdout);
22     scanf("%d",&n);
23     int temp=0;
24     for(int i=1;i<=n;i++)
25     {
26         int x,y;
27         scanf("%d%d",&x,&y);
28         if(map[x][y]==false)
29         {
30             map[x][y]=true;
31             map[y][x]=true;
32             w[++temp].l=x;w[temp].r=y;
33             if(w[temp].l>w[temp].r)swap(w[temp].l,w[temp].r);
34         }
35         else continue;
36     }
37     sort(w+1,w+temp+1,comp);
38     for(int i=1;i<=temp;i++)c[i]=1;
39     for(int i=2;i<=temp;i++)
40     {
41         maxx=0;
42         for(int j=1;j<i;j++)
43         {
44             if(w[i].r>w[j].r&&maxx<c[j]+1)
45             {
46                 maxx=c[j]+1;
47                 c[i]=maxx;
48                 b[i]=j;
49             }
50             else if(w[i].r==w[j].r&&w[i].l!=w[j].l&&maxx<c[j]+1)
51             {
52                 maxx=c[j]+1;
53                 c[i]=maxx;
54                 b[i]=j;
55             }
56         }
57     }
58     int pos=0;maxx=0;
59     for(int i=1;i<=temp;i++)
60     {
61         if(c[i]>maxx)
62         {
63             maxx=c[i];pos=i;
64         }
65     }
66     int ans=0;
67     while(b[pos])
68     {
69         ans++;
70         pos=b[pos];
71     }
72     printf("%d",ans+1);
73     return 0;
74 }

转载于:https://www.cnblogs.com/937337156Zhang/p/6025862.html

USACO JANUARY——矩形[rects]相关推荐

  1. USACO January 2014 Bronze Level

    当时没参加silver的比赛,今天就只是想熟悉一下python的语法(以前都用最熟悉的C++写),于是水了一下Bronze level的题目. A:最后的结果肯定是在[begin, begin+17] ...

  2. LeetCode 497. 非重叠矩形中的随机点(前缀和+二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个非重叠轴对齐矩形的列表 rects,写一个函数 pick 随机均匀地选取矩形覆盖的空间中的整数点. 提示: 整数点是具有整数坐标的点. 矩形周边上 ...

  3. PDF电子发票内容提取

    可以点击这里使用发票提取软件:发票解析 请参考最新的实现方案: 浅谈电子发票识别方案 在线使用:发票提取 摘要 本文介绍如何提取PDF版电子发票的内容. 1. 加载内容 首先使用Python的pdfp ...

  4. 基于形状匹配的螺丝识别(完整代码)

    文章目录 前言 一.算法设计 1.1改进一 1.2改进二 二.完整代码 总结 前言 物品的分拣是许多工业生产线必不可少的部分.最初的物品分拣工作由人工完成,分拣效率低,需要消耗大量的人力,对工人的安全 ...

  5. python手写答题卡识别_基于 Python OpenCV 的简易答题卡识别

    又有一个多月的时间了呢 = = 刚想起来还欠着一篇文章没写,趁着没忘干净赶紧补上 先上样卡(A4,扫描图片为600dpi) 整体并不是很复杂,但一口气手工切40+张也是够累,所以想办法自己写了个识别程 ...

  6. python提取pdf发票信息_PDF电子发票内容提取

    网页版程序使用地址:[在线使用](https://www.yooongchun.com/apps) 摘要 本文介绍如何提取PDF版电子发票的内容. 1. 加载内容 首先使用Python的pdfplum ...

  7. Article List

    在洛谷博客上会发布一些零碎的题目的题解,就不放在此目录了. 链接:文章列表 - MC菜鸟 的博客 - 洛谷博客 CSP-J 2022题解 AtCoder Contest ABC277 YACS 11 ...

  8. USACO 2018 January Contest

    USACO 2018 January Contest 比赛链接 T1 MooTube 题目链接 题目大意:给定一个图,两个点之间的距离是他们路径上边权的最小值.给定一个起点,求距离大于等于K的点有几个 ...

  9. 【USACO 2020 January Silver】Loan Repayment 题解

    [USACO 2020 January Silver]Loan Repayment 题目: 题目描述 Farmer John 欠了 Bessie N 加仑牛奶(1≤N≤10^12).他必须在 K 天内 ...

最新文章

  1. MySQL第一篇 (linux ubuntu平台 学习《MySQL技术内幕》总结)
  2. kali用Squid简单配置搭建http代理服务器
  3. 皮一皮:你更想成为哪个身材...
  4. 关于PyCharm无法启动的问题
  5. easyui增删改查前段代码
  6. spark上运行xgboost-scala接口
  7. Activiti5.22:删除工作流引擎自动创建的外键约束
  8. 2019最新论文阅读-BlazeFace:面向移动设备的实时人脸检测
  9. ESXI7.0主机安装群晖DS3617xs
  10. jq富文本_jQuery富文本编辑器Notebook
  11. Spring Cloud使用Dubbo实现Rpc调用失败之配置错误
  12. 华为奋力前行,以灵活多变的方式突围,成效显著
  13. 小微信贷传统风控模型的痛点
  14. tpshop php版本,TPshop安装向导 - Powered by TPshop
  15. 计算机ping 的快捷键,Ping命令使用小技巧
  16. 参考文献格式字号字体_字体字号格式要求
  17. java第三方类库Guava开源组件使用
  18. Tableau豆瓣电影项目实战作业 Day1
  19. 青鸟锦江学员车宏鑫正面回答面试官的十大面试问题
  20. 简单理解 TP、FN、FT 及 TN和准确率、精确率、召回率 的含义

热门文章

  1. 并行程序设计报告(MPI并行计算π,实现mandelbrot集)
  2. 曙光服务器bios设置_浪潮服务器PM8060阵列卡,如何做热备盘?操作相对有点复杂...
  3. linux卸载hadoop版本,centos6.5 安装hadoop1.2.1的教程详解【亲测版】
  4. 开发log4j配置_Spring 使用 Log4J 记录日志
  5. mysql统计出每个姓氏的人数_你见过什么偏僻的姓氏?明明是老虎的虎姓氏却读māo...
  6. 大学计算机专业全英文论文,5计算机专业 外文文献 英文文献 外文翻译 jsp应用框架 中英对照 大学学位论文.doc...
  7. ESI计算机排名2021年01月,喜忧参半!2021年5月ESI世界大学排行榜,21个学科排名数据分析!...
  8. java 位运算 多个状态_位运算表示对象所处状态
  9. 天之痕java版不能捉妖_〖天之痕游戏常见问题汇总(更新版)〗
  10. java swing 架构_Java Swing1 基本框架