码迷,mamicode.com
首页 > 其他好文 > 详细

HUD 4007 [扫描线][序]

时间:2016-10-26 22:30:55      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:eof   its   扫描   bit   多个   放弃   std   sort   space   

/*
大连热身B题

不要低头,不要放弃,不要气馁,不要慌张
题意:
坐标平面内给很多个点,放置一个边长为r的与坐标轴平行的正方形,问最多有多少个点在正方形内部。

思路:
按照x先排序,然后确定x在合法范围内后按照y排序,进行扫描线。
*/







#include<bits/stdc++.h>
using namespace std;
bool vis[1050];
struct st{
    void read(){
        scanf("%d%d",&x,&y);
    }
    int x,y;
};
st jilu[1050];
bool cmp(st a,st b){
    return a.x<b.x;
}
bool cmp2(st a,st b){
    return a.y<b.y;
}
int main()
{
    int n,r;
    while(scanf("%d%d",&n,&r)!=EOF){
        int ans=1;
        memset(vis,0,sizeof(vis));
        for(int i=0;i<n;i++)jilu[i].read();
        sort(jilu,jilu+n,cmp);
        int ed=0;
        for(int i=0;i<n;i++){
            while(ed<n&&jilu[ed].x<=jilu[i].x+r)ed++;
            sort(jilu+i,jilu+ed,cmp2);
            int num=1;
            int st=i;
            for(int j=i+1;j<ed;j++){
                while(jilu[st].y<jilu[j].y-r)st++;
                ans=max(ans,j-st+1);
            }
            sort(jilu+i,jilu+ed,cmp);
        }
        printf("%d\n",ans);
    }
}

 

HUD 4007 [扫描线][序]

标签:eof   its   扫描   bit   多个   放弃   std   sort   space   

原文地址:http://www.cnblogs.com/tun117/p/6001994.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!