HUD 4007 [扫描线][序]

/*
大连热身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);
    }
}
时间: 2024-10-07 06:11:46

HUD 4007 [扫描线][序]的相关文章

【BZOJ4009】[HNOI2015]接水果 DFS序+整体二分+扫描线+树状数组

[BZOJ4009][HNOI2015]接水果 Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black,  她觉得这个游戏太简单了,于是发明了一个更加难的版本.首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1给出的树包含 8 个顶点.7 条边).这颗树上有 P 个盘子,每个盘子实际上是一条路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值.第 i 个盘子

[扫描线][倍增][dfs序][线段树] Jzoj P6276 树

Description 有一棵n个节点的无根树,给出其中的m对点对<x,y>.问有多少条树上的简单路径<u,v>满足该路径上不存在任何一对给出的点对<x,y>. 这里我们认为路径<u,v>和<v,u>是相同的.并且对于题目中给出的点对<x,y>满足x!=y,对于你要计数的路径<u,v>满足u!=v(即单点不算答案). 题解 我们先把每个点在dfs上入队出队的时间给弄出来 然后可以转换为在平面上的n个矩阵 就可以用扫描线+线

如何用Unity GUI制作HUD

若知其所以然,自然知其然. HUD是指平视显示器,就是套在脸上,和你的眼睛固定在一起,HUD的意思就是界面咯,一般我们说HUD特指把3D空间中的界面的某些信息(比如血条,伤害之类)的贴在界面上,对应3D空间投影到屏幕空间的位置. ? 很简单很简单的一件事,就是投影而已. 虽然我一直认为自己学的是野路子,相当的空中楼阁.不幸发现,比我路子更野,比我基础更差的同学实在是多到令人发指的程度. ? 没办法,我们用UGUI来实现一下这个投影过程. 首先准备一下我们的3D空间 弄几个盒子让他们转起来. 如果

HDU 1542 Atlantis(线段树扫描线&#183;面积并)

题意  给你一些矩形的左下和右上的坐标  求这些矩形的面积并 最基础的扫描线  理解了就是个水题了  先看一些图吧                                恩  看完了有什么感觉没有  那些红色的线就可以当作传说中的扫描线  就像从左到右扫描嘛  可以发现  矩形有竖直边的地方就有这些线  这些线把把拼在一起的矩形切成了一个个的小矩形  我们把这些小矩形的面积加起来不就是要求的面积吗 那么现在这些小矩形的面积怎么求呢  长乘宽嘛  长是什么  两条红线之间的距离  恩  我

扫描线题目汇总 (里面的题解和代码非原创)

hdu 3867 Light and Shadow 转载自:http://blog.csdn.net/accry/article/details/6676009 题意: 原子弹爆炸,一些互不相交的线段,求能辐射到的线段个数(可以将原子弹爆炸点视为泛光源) 分析: 以辐射源为中心对周围的点按照极坐标角度进行排序,然后在极坐标上使用扫描线方法.维护一个集合,集合内的元素是与扫描线相交的线段,排序依据是线段与扫描线的交点到辐射源的距离.该集合中的最小元素就是被照射到的线段. 有关容器(set)排序依据

POJ1151Atlantis 矩形面积并 扫描线 线段树

欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ1151 题意概括 给出n个矩形,求他们的面积并. n<=100 题解 数据范围极小. 我们分3种算法逐步优化. 算法1: O(n3) 如果这n个矩形的坐标都是整数,而且比较小,那么我们显然可以用最暴力的方法:一个一个打标记. 但是不是这样的. 坐标大小很大,而且是实数. 然而我们发现差不多,只要先离散化一下,然后再打标记即可. 算法2:O(n2) 实际上,上面的方法十分慢.如果n的范围到了1000,

HDU1542-Atlantis【离散化&amp;线段树&amp;扫描线】个人认为很全面的详解

刚上大一的时候见过这种题,感觉好牛逼哇,这都能算 如今已经不打了,不过适当写写题保持思维活跃度还是不错的,又碰到这种题了,想把它弄出来 说实话,智商不够,看了很多解析,花了4.5个小时才弄明白 网上好多都是直说一半,弄得我很难受,需要查看很多题解不断对比才清楚 首先线段树这玩意,不光是线段树吧,只要牵扯到递归都很抽象,要想好久 如果中途有哪些不懂,继续看,代码我尽量做到每一行都有注释 1.离散化 先说离散化,这里面牵扯到小数,而线段树是维护一个整数区间,这是我们首先遇到的问题 比如这种情况,第二

poj 1151 求矩形面积并 (线段树扫描线)

题意: 给出n个矩形的左下角和右上角坐标,求这n个矩形所构成的面积 思路: 线段树扫描线 这是第一次做到线段树扫描线,刚开始也不懂 如果不懂,可以看: http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html 和 http://www.faceye.net/search/69289.html 我是看第一个链接弄懂的 然后学习了第二位的方法 代码上也有比较详细的注释,想可以帮到大家 code: #include<cstd

HDU - 5770 Treasure 思维 + 扫描线 + 线段树 (看题解)

HDU - 5770 没想出来, 感觉不应该啊, 没有想到转换成二维上的点的问题. 对于对钥匙和宝藏(u, v), 如果lca != u && lca != v 那么起点从u子树出发, 终点在v子树就能得到贡献. 子树在dfs序下是连续一段, 所以就对应到二维平面一个矩形加上一个数值, 求值最大的点. 对于lca == u || lca == v同样可以讨论出来. 还有一种情况就是u == v, 我们先把贡献都加上, 然后对于不经过u 的所有路径进去这个贡献. 然后扫描线扫一遍就好了. #