题目链接:https://www.vijos.org/p/1066

这道题没什么难度,只是要一个排序然后就是线段树的基本套路模版了

但是我还是讲一讲思路吧:

  给出的是坐标x,y,当一个点的x,y都小于等于另外一个点,则这个点就是另外一个点的保护对象,然后我们就可以对x进行一个排序,然后用线段树依次加入纵坐标去更新

保护的数量,这就是这个简单套路

这题不难,就直接上代码吧

 #include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
#include<cstdlib>
#define maxn 15005
using namespace std; struct edge{
int l,r,sum;
}e[maxn*]; int n,maxy,ans[]; struct point{
int x,y;
}f[maxn*]; int comp(point a,point b)
{
return (a.x==b.x)?(a.y<b.y):(a.x<b.x);
} void build(int l,int r,int pos)
{
e[pos].sum=;e[pos].l=l;e[pos].r=r;
if(l!=r)
{
int mid=(l+r)/;
build(l,mid,pos*);
build(mid+,r,pos*+);
} } void change(int l,int r,int pos)
{//将那些纵坐标大于等于l的处理
if(e[pos].l==l&&e[pos].r==r)
{
e[pos].sum++;
return;
}
if(e[pos].l==e[pos].r)return;
int mid=(e[pos].l+e[pos].r)/;
if(mid>=r)
{
change(l,r,pos*);
}else{
if(mid<l)change(l,r,pos*+);
else{
change(l,mid,pos*);
change(mid+,r,pos*+);
}
} } int query(int po,int pos)
{
if(e[pos].l==e[pos].r)return e[pos].sum;
int mid=(e[pos].l+e[pos].r)/;
if(po<=mid){
return e[pos].sum+query(po,pos*);
}else return e[pos].sum+query(po,pos*+); } int main()
{ scanf("%d",&n);
for(int i=;i<=n-;i++)
{
int a,b;
scanf("%d%d",&a,&b);
f[i].x=a;f[i].y=b;
maxy=max(maxy,b);
}
sort(f,f+n,comp);//首先让x坐标排个序,接下来加点就只用在y坐标上进行处理
build(,,);
for(int i=;i<=n-;i++)
{
ans[query(f[i].y,)]++; //查看在哪一个答案区间
change(f[i].y,,);//i点加进来后,需要加1的点区间
}
for(int i=;i<n;i++)
{
printf("%d\n",ans[i]);
} }

最新文章

  1. word20161208
  2. Python之路 day2 字符串函数
  3. 《ASP.NET MVC4 WEB编程》学习笔记------.net mvc实现原理ActionResult/View
  4. 使用mutt+msmtp在Linux命令行界面下发邮件
  5. 《Linux系统 date、cal、hwclock时间命令的用法》
  6. 随记一个C的毫秒级群PING
  7. EL表达式与三目运算符
  8. 深入浅出Ajax(一)
  9. rest api get 查询接口 多个参数
  10. Java_Date_01_判断两个时间相差的天数
  11. ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack
  12. AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构
  13. Java进阶篇设计模式之十 ---- 访问者模式和中介者模式
  14. codeforces#1154F. Shovels Shop (dp)
  15. Spring Boot 框架的依赖管理
  16. Android--px(像素)和dp、sp之间的相互转化
  17. 【Codeforces 1105E】Helping Hiasat
  18. tomcat站点配置
  19. bzoj1043 [HAOI2008]下落的圆盘
  20. idea 插件

热门文章

  1. Vue+Axios+iview+vue-router实战管理系统项目
  2. html/css系列-图片上下居中
  3. 这样学习Servlet,会事半功倍!!
  4. Linux下git使用
  5. Simulink仿真入门到精通(六) Simulink模型保存为图片
  6. python读取文件指定行内容
  7. sklearn-转换器与机器学习流程
  8. SpringCloud之Hystrix服务降级入门全攻略
  9. Vue.js组件嵌套和template外用
  10. 在d盘创建文件夹,里面有aaa.txt/bbb.txt/ccc.txt,然后遍历出aaa文件夹下的文件(新手)