hdu(4007)正方形能框住最大的点数
2012-08-27 16:31
260 查看
暴搞呗。。。
#include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <vector> #include <cstring> #include <cmath> #define inf 1000300000 using namespace std; const int N=1093; struct Node { int x,y; }point ; int n,R; bool cmp(Node a,Node b) { return a.x<b.x; } int main() { while(scanf("%d%d",&n,&R)!=EOF) { int max_x=-inf,min_x=inf,max_y=-inf,min_y=inf; for(int i=0;i<n;i++) { scanf("%d%d",&point[i].x,&point[i].y); min_x=min(point[i].x,min_x); max_x=max(point[i].x,max_x); min_y=min(point[i].y,min_y); max_y=max(point[i].y,max_y); } if((max_x-min_x<=R)&&(max_y-min_y<=R)) { printf("%d\n",n); continue; } sort(point,point+n,cmp); int ans=0; for(int i=0;i<n;i++) { int fucky ; int cnt=0; for(int j=i;j<n&&(point[i].x+R>=point[j].x);j++) { fucky[cnt++]=point[j].y; } sort(fucky,fucky+cnt); int cot=0,temp=0; for(int j=0;j<cnt&&temp<cnt;j++) { while(fucky[temp]-fucky[j]<=R&&temp<cnt)temp++; if(cot<temp-j)cot=temp-j; } ans=max(ans,cot); } printf("%d\n",ans); } }
相关文章推荐
- 【几何---正方形覆盖】hdu 4007
- hdu 4007 Dave 求矩形圈点最大值
- HDU - 4007 Dave (模拟&技巧)数学几何正方形最多可圈几个点
- hdu 4007 平行矩形包含点数
- Dave(正方形能围成的最大点数)
- hdu 1077 圆覆盖的最大点数
- HDU 3829 最大du立集=2个点集点数-最大匹配数
- hdu 4846 最大子正方形
- HDU 2458Kindergarten(二分图 最大团点数)
- HDU 2063 过山车 (最大匹配,匈牙利算法)
- hdu 2063(二分图最大匹配,匈牙利算法,水题)
- HDU_4971_A simple brute force problem.(最大权闭合图)
- HDU 3488 Tour 最小费用最大流||最大匹配
- hdu 5207 求数组中任取两数的gcd最大值(灵活题)
- hdu 5442 Favorite Donut (最大表示法+KMP)
- HDU 3829 二分最大独立集
- hdu 4292 Food 最大流
- HDU - 1003 Max Sum (最大连续和)
- 【难】【DP】计算bool矩阵中,仅包含1的最大矩形和最大正方形
- hdu 1505(最大子矩阵)