(线段树 -星星等级)Stars POJ - 2352
题意:
给出n个星星的坐标 x,y ,当存在其他星星的坐标x1,y1满足x>=x1&&y>=y1时 这个星星的等级就加1。
注意:
题中给的数据是有规律的 ,y是逐渐增加的 ,若y相等时x是逐渐增加的 。
思路:
~~怎么都没想到是线段树 ~~
因为当前给的坐标的yn 一定大于等于之前的y,那么只需要看之前有多少个小于xn 的坐标即可 (说白了就不用考虑y),这一步用线段树来实现:
对于每个xi 查询1到xi 的横坐标有多少个,那么怎么对x进行计数呢?对与每个xi 更新区间x->max(就是32000)进行加1操作 ,那么对于后面大于xi 的横坐标只需要单点查询它的xn 坐标 被加了多少次即可 ,即代码中的sum[o],就是i号星星的等级
上代码:
//A code block
#include<iostream>
#include<stdio.h>
using namespace std;
int n,m,lazy[150005],sum[150005];/*区间最大值 不断加1*/
void pushdown(int l,int r,int o)
{
if(lazy[o])
{
lazy[o<<1|1]+=lazy[o];
lazy[o<<1]+=lazy[o];
sum[o<<1|1]+=lazy[o];
sum[o<<1]+=lazy[o];
lazy[o]=0;
}
}
void update(int x,int y,int l,int r,int o)
{
if(x<=l&&y>=r)
{
sum[o]++;
lazy[o]++;
return ;
}
pushdown(l,r,o);
int mid=(l+r)>>1;
if(x<=mid) update(x,y,l,mid,o<<1);
if(y>mid) update(x,y,mid+1,r,o<<1|1);
sum[o]=max(sum[o<<1],sum[o<<1|1]);
return ;
}
int k=0;
void query(int x,int y,int l,int r,int o)
{
if(x<=l&&y>=r)
{
k=max(sum[o],k);
return ;
}
pushdown(l,r,o);
int mid=(l+r)>>1;
if(x<=mid) query(x,y,l,mid,o<<1);
if(y>mid) query(x,y,mid+1,r,o<<1|1);
return ;
}
int main()
{
while(~scanf("%d",&m))
{
int x,y,grade[15010],maxx=32005;
for(int i=0;i<=15000;i++)
grade[i]=0;
for(int i=0;i<=150000;i++)
lazy[i]=sum[i]=0;
for(int i=1;i<=m;i++)
{
k=0;
scanf("%d%d",&x,&y);
x++,y++;
query(1,x,1,maxx,1);
grade[k]++;
update(x,maxx,1,maxx,1);
}
for(int i=0;i<m;i++)
printf("%d\n",grade[i]);
}
return 0;
}
var foo = 'bar';
(线段树 -星星等级)Stars POJ - 2352的更多相关文章
- 线段树 + 区间更新 + 模板 ---- poj 3468
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 59798 ...
- 线段树(成段更新) POJ 3468 A Simple Problem with Integers
题目传送门 /* 线段树-成段更新:裸题,成段增减,区间求和 注意:开long long:) */ #include <cstdio> #include <iostream> ...
- 【树状数组】 poj 2352
题意:给出n个平面二维坐标,对于每个坐标,如果这个坐标跟(0,0)形成的矩形内包含的点数为 k (包含边界,但不包含坐标本身),那么这个坐标就是 level k.输出level 0 - n-1的点数分 ...
- 线段树扫描线总结(POJ 1389)
扫描线算是线段树的一个比较特殊的用法,虽然NOIP不一定会考,但是学学还是有用的,况且也不是很难理解. 以前学过一点,不是很透,今天算是搞懂了. 就以这道题为例吧:嘟嘟嘟 题目的意思是在一个二维坐标系 ...
- 【树状数组】POJ 2352 Stars
/** * @author johnsondu * @time 2015-8-22 * @type Binary Index Tree * ignore the coordinate of y and ...
- Stars POJ - 2352
Astronomers often examine star maps where stars are represented by points on a plane and each star h ...
- (线段树)Balanced Lineup --POJ --3264
链接: 对于POJ老是爆,我也是醉了, 链接等等再发吧! http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82832#problem/G 只 ...
- 线段树(倒序操作):POJ 2828 Buy Tickets
Buy Tickets Description Railway tickets were difficult to buy around the Lunar New Year in China, ...
- 求矩形的周长(线段树+扫描线) Picture POJ - 1177
题目链接:https://cn.vjudge.net/problem/POJ-1177 题目大意:求矩形外部的周长 具体思路:借用一下bin巨的一张图片. 我们按照y周从下往上的扫描线进行扫描,第一下 ...
随机推荐
- 【阿里云IoT+YF3300】16.云端一体化,天猫精灵操控YF3300
“你好天猫精灵”,“主人有什么吩咐”,“打开灯”,“好的,灯已打开”.对于这样的对话应该大多数人都很熟悉,这就是智能家居的缩影.对于现在市面上层出不穷的智能家居系统,功能越来越繁杂,可是因为开发难度高 ...
- 设计模式-12组合模式(Composite Pattern)
1.模式动机 很多时候会存在"部分-整体"的关系,例如:大学中的部门与学院.总公司中的部门与分公司.学习用品中的书与书包.在软件开发中也是这样,例如,文件系统中的文件与文件夹.窗体 ...
- 使用QT绘制一个多边形
目录 1. 概述 2. 实现 2.1. 代码 2.2. 解析 3. 结果 1. 概述 可以通过QT的重绘事件和鼠标事件来绘制多边形,最简单的办法就是在继承QWidget的窗体中重写paintEvent ...
- 《即时消息技术剖析与实战》学习笔记11——IM系统如何保证服务高可用:流量控制和熔断机制
IM 系统的不可用主要有以下两个原因: 一是无法预测突发流量,即使进行了服务拆分.自动扩容,但流量增长过快时,服务已经不可用了: 二是业务中依赖的这些接口.资源不可用或变慢时,比如发消息可能需要依赖& ...
- HTML5 基础知识(1)——基本标签
## HTML**概念**:是最基础的网页开发语言(Hyper Text Markup Langage 超文本标记语言) > 1.超文本:超文本是用超链接的方式i,将各种不同空间的文字组织在一起 ...
- 玩转 .NET Core 3.0:逐浪CMS新版发布,建站更简单、网站更安全
2019年11月11日,在大家都忙于网上体会“双11 ”的热闹气氛的时候,逐浪CMS开发者团队正在做着新版本发布的最后工作.此次更新是基本于 .NET Core 3.0开发,也是全国首个基于 .NET ...
- layui表格数据渲染SpringBoot+Thymeleaf返回的数据时报错(Caused by: org.attoparser.ParseException: Could not parse as expression: ")
layui table渲染数据时报错(Caused by: org.attoparser.ParseException: Could not parse as expression: ") ...
- plist 图集 php 批量提取 PS 一个个切
最近,迷上了用 cocos2d 做游戏开发.由于是新入门,很多东西从头开始学. 在使用 sprite 的 Rect 裁剪显示的时候,显示总是多一块.所以,要从图集中提取一张张图,这样就省了裁剪. 原图 ...
- Java反射之成员变量的反射
上一篇介绍了Java反射之构造方法反射.这次我们在说一说如何反射类中的成员变量并用作一个简单案例. [一]Field类 Filed类代表字段,包含字段拥有的所有属性,比如修饰符,变量类型,值等等,Fi ...
- linux ftp服务器设置,只允许用户访问指定的文件夹,禁止访问其他文件夹
在Linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户:在root用户下: useradd ...