求正方形的 点覆盖,正方形不能斜放(线段扫描)

来源:互联网 发布:网络电影众筹 编辑:程序博客网 时间:2024/06/05 18:08
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define Max 0x3f3f3f3fusing namespace std;struct node{    int x,y;} p[1005];int main(){    int i,j,n,r,ans;    int xx[1005],yy[1005];    while(scanf("%d%d",&n,&r)!=EOF)    {    ans=0;        for(i=1; i<=n; i++)        {            scanf("%d%d",&p[i].x,&p[i].y);            yy[i]=p[i].y;        }        sort(yy+1,yy+1+n);        for(i=1; i<=n; i++)        {            int len=0;            for(j=1; j<=n; j++)                if(p[j].y>=yy[i]&&p[j].y<=yy[i]+r)                    xx[++len]=p[j].x;            sort(xx+1,xx+1+len);            int e=1;            for(j=1; j<=len; j++)            {                while(xx[e]-xx[j]<=r && e<=len )e++;                if(e-j>ans)ans=e-j;            }        }        printf("%d\n",ans);    }    return 0;}

0 0
原创粉丝点击