C. Rectangles

來源:互聯網
上載者:User

標籤:枚舉   ons   href   bool   force   .com   bre   部分   group   

連結

[http://codeforces.com/group/1EzrFFyOc0/contest/1028/problem/C]

題意

給你n個矩形的左下角和右上方座標,問你至少包含在n-1個矩形的點的座標,有多個隨便輸出一個

分析

分別從前到後和從後到前枚舉矩形重疊的部分
分別有b[i]和c[i]儲存從第一個到第i個的矩形重疊的小矩形和從後面倒著來第n個到第i個的矩形重疊的小矩形
任意兩個矩形重疊的小矩形左下和右上座標計算為
(max(a.xl,b.xl),max(a.yl,b.yl)) 就是交矩形的左下角座標。
(min(a.xr,b.xr),min(a.yr,b.yr)) 就是交矩形的右上方座標。
然後枚舉去掉n個中的一個是否能構成矩形如果可以直接輸出左下角座標,否則繼續枚舉

代碼
#include<bits/stdc++.h>using namespace std;#define ll long longconst int maxn=150000;ll inf=1e9+10;struct node{    ll xl,yl,xr,yr;}a[maxn],b[maxn],c[maxn],wo;bool jud(node g){        if(g.xl>g.xr||g.yl>g.yr) return 0;    return 1;}int main(){    int n,i;    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);    //freopen("in.txt","r",stdin);    cin>>n;    for(i=1;i<=n;i++)    cin>>a[i].xl>>a[i].yl>>a[i].xr>>a[i].yr;        b[0].xl=b[0].yl=-inf;    b[0].xr=b[0].yr=inf;    for(i=1;i<=n;i++){        b[i].xl=max(a[i].xl,b[i-1].xl);        b[i].yl=max(a[i].yl,b[i-1].yl);        b[i].xr=min(a[i].xr,b[i-1].xr);        b[i].yr=min(a[i].yr,b[i-1].yr);    }        c[n+1].xl=c[n+1].yl=-inf;    c[n+1].xr=c[n+1].yr=inf;    for(i=n;i>=1;i--){        c[i].xl=max(a[i].xl,c[i+1].xl);        c[i].yl=max(a[i].yl,c[i+1].yl);        c[i].xr=min(a[i].xr,c[i+1].xr);        c[i].yr=min(a[i].yr,c[i+1].yr);    }    if(jud(b[n-1])){        cout<<b[n-1].xl<<‘ ‘<<b[n-1].yl<<endl;    }    else if(jud(c[2])){        cout<<c[2].xl<<‘ ‘<<c[2].yl<<endl;    }    else{        for(i=2;i<n;i++){            wo.xl=max(b[i-1].xl,c[i+1].xl);            wo.yl=max(b[i-1].yl,c[i+1].yl);            wo.xr=min(b[i-1].xr,c[i+1].xr);            wo.yr=min(b[i-1].yr,c[i+1].yr);            if(jud(wo))                break;        }        cout<<wo.xl<<‘ ‘<<wo.yl<<endl;    }    return 0;}

C. Rectangles

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.