栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3681 Finding the Rectangle

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3681 Finding the Rectangle

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct point{    int x,y;}po[300];bool comp(point a,point b){    return a.y<b.y;}int x[300],n,m;int getarea(int lx,int rx){    int d=20000;    int y[300],f=0,r=0;    for(int i=0;i<n;i++)    {        if(po[i].x>=lx&&po[i].x<=rx)        { y[r++]=po[i].y; if(r-f==m) {     d=min(d,y[r-1]-y[f]);     f++; }        }    }    return (d==20000)?(1<<30):(d+2)*(rx-lx+2);}int main(){    int T;    for(scanf("%d",&T);T;T--)    {        int nu=0,ans=1<<30,sum;        scanf("%d%d",&n,&m);        for(int i=0;i<n;i++) scanf("%d%d",&po[i].x,&po[i].y),x[i]=po[i].x;        if(m==1)        { printf("4n"); continue;        }        sort(po,po+n,comp);        sort(x,x+n);        for(int i=1;i<n;i++) if(x[i]!=x[nu])     x[++nu]=x[i];        nu++;        for(int i=0;i<nu;i++)        { for(int j=i;j<nu;j++) {     ans=min(ans,getarea(x[i],x[j])); }        }        printf("%dn",ans);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号