zoukankan      html  css  js  c++  java
  • 矩形重叠

    题目:

    平面内有n个矩形, 第i个矩形的左下角坐标为, 右上角坐标为。 
    如果两个或者多个矩形有公共区域则认为它们是相互重叠的(不考虑边界和角落)。 
    请你计算出平面内重叠矩形数量最多的地方,有多少个矩形相互重叠。

    输入描述:

    输入包括五行。 
    第一行包括一个整数n, 表示矩形的个数。 
    第二行包括n个整数,表示左下角的横坐标。 
    第三行包括n个整数,表示左下角的纵坐标。 
    第四行包括n个整数,表示右上角的横坐标。 
    第五行包括n个整数,表示右上角的纵坐标。

    输出描述:

    输出一个正整数, 表示最多的地方有多少个矩形相互重叠,如果矩形都不互相重叠,输出1。

    样例:

    in:
    2
    0 90
    0 90
    100 200
    100 200
    
    out:
    2

    将n个矩形轮流作为被覆盖区域,每次被覆盖则更新区域,n次后求出最大值即可。

    AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 struct node{
     5     int x1,y1,x2,y2;
     6     bool operator < (const node&node1) const{
     7         if(x1!=node1.x1){
     8             return x1<node1.x1;
     9         }
    10         if(y1!=node1.y1){
    11             return y1<node1.y1;
    12         }
    13         if(x2!=node1.x2){
    14             return x2<node1.x2;
    15         }
    16         else{
    17             return y2<node1.y2;
    18         }
    19     }
    20 }a[60];
    21 
    22 int main(){
    23     int n;
    24     cin>>n;
    25     for(int i=0;i<n;i++){
    26         cin>>a[i].x1;
    27     }
    28     for(int i=0;i<n;i++){
    29         cin>>a[i].y1;
    30     }
    31     for(int i=0;i<n;i++){
    32         cin>>a[i].x2;
    33     }
    34     for(int i=0;i<n;i++){
    35         cin>>a[i].y2;
    36     }
    37     sort(a,a+n);
    38     int ans=0;
    39     for(int i=0;i<n;i++){
    40         int cnt=0,x1=a[i].x1,y1=a[i].y1,x2=a[i].x2,y2=a[i].y2;
    41         for(int j=0;j<n;j++){
    42             if(a[j].x1<x2&&a[j].y1<y2&&a[j].x2>x1&&a[j].y2>y1){
    43                 x1=max(x1,a[j].x1);
    44                 y1=max(y1,a[j].y1);
    45                 x2=min(x2,a[j].x2);
    46                 y2=min(y2,a[j].y2);
    47                 cnt++;
    48             }
    49         } 
    50         ans=max(cnt,ans);
    51     }
    52     cout<<ans<<endl;
    53     return 0;
    54 }
  • 相关阅读:
    python @ 修饰符
    收集一些NOSQL网站,以后有时间再来写NOSQL的一些心得
    网站性能问答
    CSLA筆記
    Google PR值原理和详细解说
    通天塔导游:各种编程语言优缺点
    网站访客行为和心理分析--决定网站的回头率
    pymongo 基本操作
    [摘]如何成为python高手
    用数组,列表或字典来代替选择语句
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/8718274.html
Copyright © 2011-2022 走看看