题目链接: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]);
} }

[vijos]1066弱弱的战壕<线段树>的更多相关文章

  1. 【vijos】1750 建房子(线段树套线段树+前缀和)

    https://vijos.org/p/1750 是不是我想复杂了.... 自己yy了个二维线段树,然后愉快的敲打. 但是wa了两法.......sad 原因是在处理第二维的更新出现了个小问题,sad ...

  2. 【vijos1066】弱弱的战壕 线段树

    描述 永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了-_-b. mx在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限(“mx不赢定了?!?”永恒 ...

  3. BZOJ2333 [SCOI2011]棘手的操作 【离线 + 线段树】

    题目 有N个节点,标号从1到N,这N个节点一开始相互不连通.第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边,连接第x个节点和第y个节点 A1 x v: 将第x个节点的权 ...

  4. 小结:线段树 & 主席树 & 树状数组

    概要: 就是用来维护区间信息,然后各种秀智商游戏. 技巧及注意: 一定要注意标记的下放的顺序及影响!考虑是否有叠加或相互影响的可能! 和平衡树相同,在操作每一个节点时,必须保证祖先的tag已经完全下放 ...

  5. Vijos P1066 弱弱的战壕【多解,线段树,暴力,树状数组】

    弱弱的战壕 描述 永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了-_-b. mx在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限(“mx不赢定了 ...

  6. 树状数组训练题1:弱弱的战壕(vijos1066)

    题目链接:弱弱的战壕 这道题似乎是vijos上能找到的最简单的树状数组题了. 原来,我有一个错误的思想,我的设计是维护两个树状数组,一个是横坐标,一个是纵坐标,然后读入每个点的坐标,扔进对应的树状数组 ...

  7. [Vijos] 弱弱的战壕

    描述 永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了-_-b. mx在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限(“mx不赢定了?!?”永恒 ...

  8. 【vijos】P1066 弱弱的战壕

    [算法]线段树 [题解]将所有坐标按x(第一)和y(第二)从小到大排序,再按顺序插入线段树,即在线段树中将y坐标位置+1,这样就能保证每个坐标能包含的点一定先被处理了,每次询问查询1...a[i].y ...

  9. VIJOS-P1066 弱弱的战壕

    JDOJ 1247: VIJOS-P1066 弱弱的战壕 题目传送门 Description 永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了--b. mx在他的基地附近建立了 ...

随机推荐

  1. 一份简明的 Base64 原理解析

    书接上回,在 记一个 Base64 有关的 Bug 一文里,我们说到了 Base64 的编解码器有不同实现,交叉使用它们可能引发的问题等等. 这一回,我们来对 Base64 这一常用编解码技术的原理一 ...

  2. React的组件

    React的组件化思想尤为明显,一切皆组件,觉着比Vue的组件化思想更加凸显. const PacketBG = (props) =>( <div className="pack ...

  3. Educational Codeforces Round 83 (Rated for Div. 2)A--C

    题意:给出一个边数为n的等边多边形,问是否可以变成m的等边多边形.条件是同一个中心,共用原顶点. 解析:直接n%m==0即可,这样就是平分了.签到题没得说了. #include<iostream ...

  4. scrapy mid中间件一般处理方法

    import user_agent import requests class UA_midd(object): def process_request(self,request,spider): r ...

  5. JAVAEE学习day02

    1.数据类型的转换 1>自动转换(隐式) // 将取值范围小的数据类型自动提升为取值范围大的类型 // 定义byte类型数据 byte b = 10; // 定义short类型数据 short ...

  6. 小白学 Python 数据分析(16):Matplotlib(一)坐标系

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  7. java常用日期类总结

    java 常用的日期类有三个Date.SimpleDateFormat.Calendar

  8. Natas22 Writeup(header重定向、burp截取抓包)

    Natas22: 打开页面是一个空白页面,查看源码,看起来好像是需要我们在url中添加“revelio”参数即可,然而实验了之后发现浏览器跳转回了原来的页面. 再次仔细审计源码,会看到页面开头有一个重 ...

  9. Head First设计模式——桥接模式

    桥接模式 桥接模式:不只改变你的实现,也改变你的抽象. 如果有一个电视厂家,遥控器需要升级,电视也需要修改.这种变化部分的封装就适合使用桥接模式,桥接模式通过将实现和抽象放在两个不同的类层次中而使它们 ...

  10. C++类复习及新的认识 6.1.1+6.1.2内容(适合看过一遍书的新手)

    作者水平有限,文字表述大多摘抄课本,源码部分由课本加自己改编而成,所有代码均在vs2019中编译通过 定义类操作 class Tdate { public: void Set(int m, int d ...