参考博客http://www.cppblog.com/aswmtjdsj/archive/2011/09/04/155049.aspx

维护4根双扫描线,左右和上下。暴力枚举,复杂度O(n^2).

#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN = 1001;
struct Point{
int x, y;
};
int n, R;
Point vx[MAXN], vy[MAXN];
bool cmpx(Point a, Point b){
return a.x < b.x;
}
bool cmpy(Point a, Point b){
return a.y < b.y;
}
int getMAX(){
int l, r, u,i,j,t=0;;
int ans = 0;
for (i = 0; i < n; i++){
l = vx[i].x; //左边线
while (t < n&&vx[t].x - l <= R)t++;
t--;
r = vx[t].x;
int s = 0,temp=0;
for (j = 0; j < n; j++){
u = vy[j].y;
while (s < n&&vy[s].y - u <= R){
if (vy[s].x <= r&&vy[s].x>=l)
temp++;
s++;
}
ans = max(ans, temp);
//为下一次做准备
if (vy[j].x <= r&&vy[j].x >= l)
temp--;
}
}
return ans;
}
int main(){
while (~scanf("%d%d", &n, &R)){
for (int i = 0; i < n; i++){
scanf("%d%d", &vx[i].x, &vx[i].y);
vy[i] = vx[i];
}
sort(vx, vx + n, cmpx);
sort(vy, vy + n, cmpy);
int ans = getMAX();
printf("%d\n", ans);
}
return 0;
}

  

hdu4001的更多相关文章

随机推荐

  1. SqlServer中截取小数位数

    方法一:convert(float,字段名) as 别名 select convert(float,round(10.123232,2)) 结果:10.12 select convert(float, ...

  2. vue cli 3 & webpack-merge & webpack 3 & bug

    vue cli 3 & webpack-merge & webpack & bug bug webpack-merge & bug webpack-merge ??? ...

  3. 【bzoj4994】[Usaco2017 Feb]Why Did the Cow Cross the Road III 树状数组

    题目描述 给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi,求满足ai<aj<bi<bj的对数 样例输入 4 3 2 4 4 1 3 2 1 样例输 ...

  4. 雅礼集训 Day1 T2 折射

    折射 题目描述 小\(\mathrm{Y}\)十分喜爱光学相关的问题,一天他正在研究折射. 他在平面上放置了\(n\)个折射装置,希望利用这些装置画出美丽的折线. 折线将从某个装置出发,并且在经过一处 ...

  5. 【CZY选讲·吃东西】

    题目描述 一个神秘的村庄里有4家美食店.这四家店分别有A,B,C,D种不同的美食.LYK想在每一家店都吃其中一种美食.每种美食需要吃的时间可能是不一样的.现在给定第1家店A种不同的美食所需要吃的时间 ...

  6. 《c程序设计语言》-2.9

    #include <stdio.h> /*int bitcount(unsigned x) { int b; for(b = 0;x != 0;x >>= 1) { if(x ...

  7. (转)cygwin包管理器apt-cyg

    通过终端安装apt-cyg之前选要安装以下软件包 wget tar gawk bzip2 Cygwin终端安装 wget http://apt-cyg.googlecode.com/svn/trunk ...

  8. 【转】Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    原文链接:http://dblab.xmu.edu.cn/blog/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单, ...

  9. kvm虚拟机最佳实践系列2-创建KVM及KVM优化

    创建KVM及KVM优化 把KVM优化与KVM创建放在一起,是因为我们创建的KVM是要用在生产环境中,所以基础优化工作是必备的. 创建KVM 创建系统盘, 大小: 操作系统通常都不到10G,所以系统盘2 ...

  10. Kubernetes镜像制作

    #将需要安装的包全部放入一个目录下,然后开始编写Dockerfile#Dockerfile格式FROM #依赖的镜像MAINTAINER #制作者信息WORKDIR #工作目录,打包启动镜像后的所在目 ...