cogs62 [HNOI2004] 宠物收养所


啦啦啦啦

不维护区间的平衡树题都是树状数组+二分练手题!

不会的参考我的普通平衡树的多种神奇解法之BIT+二分答案

// It is made by XZZ
#include<cstdio>
#include<algorithm>
using namespace std;
#define rep(a,b,c) for(rg int a=b;a<=c;a++)
#define drep(a,b,c) for(rg int a=b;a>=c;a--)
#define erep(a,b) for(rg int a=fir[b];a;a=nxt[a])
#define il inline
#define rg register
#define vd void
typedef long long ll;
il int gi(){
rg int x=0;rg bool flg=0;rg char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')flg=1;ch=getchar();}
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return flg?-x:x;
}
const int maxn=80010;
int n;
int t[maxn],tot;
#define lb(o) (o&-o)
il vd Appear(int p){++p;while(p<=tot)++t[p],p+=lb(p);}
il vd Disappear(int p){++p;while(p<=tot)--t[p],p+=lb(p);}
il int Query(int p){int ret=0;while(p)ret+=t[p],p-=lb(p);return ret;}
il int pre(int p){
int mid,l=1,r=p-1,k=Query(p);
while(l<r){
mid=(l+r)>>1;
if(Query(mid+1)==k)r=mid;
else l=mid+1;
}return l;
}
il int nxt(int p){
int mid,l=p+1,r=tot,k=Query(p+1);
while(l<r){
mid=(l+r)>>1;
if(Query(mid+1)^k)r=mid;
else l=mid+1;
}return l;
}
bool z[maxn];
int s[maxn];ll data[maxn];
int main(){
n=gi();
rep(i,1,n)z[i]=gi(),s[i]=data[i]=gi();
sort(data+1,data+n+1);
tot=unique(data+1,data+n+1)-data-1;
rep(i,1,n)s[i]=lower_bound(data+1,data+tot+1,s[i])-data;
++tot;data[0]=-1e16;
int nowtot=0;ll ans=0;
bool nowp;
rep(i,1,n)
if(nowtot==0)Appear(s[i]),nowp=z[i],nowtot=1;
else if(nowp==z[i])Appear(s[i]),++nowtot;
else{
if(Query(s[i])^Query(s[i]+1))Disappear(s[i]);
else{
static int _pre,_nxt;static ll _p,_n;
_pre=_nxt=0;
if(Query(s[i]))_pre=pre(s[i]);
if(Query(s[i]+1)^nowtot)_nxt=nxt(s[i]);
_p=abs(data[s[i]]-data[_pre]),_n=abs(data[s[i]]-data[_nxt]);
ans+=min(_p,_n),ans%=1000000;
Disappear(_n<_p?_nxt:_pre);
}
--nowtot;
}
printf("%lld\n",ans);
return 0;
}

cogs62 [HNOI2004] 宠物收养所的更多相关文章

  1. BZOJ 1208: [HNOI2004]宠物收养所

    1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 7514  Solved: 2982[Submit][Sta ...

  2. bzoj 1208: [HNOI2004]宠物收养所 set

    1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 7328  Solved: 2892[Submit][Sta ...

  3. 数据结构(set):COGS 62. [HNOI2004] 宠物收养所

    62. [HNOI2004] 宠物收养所 ★★★   输入文件:pet.in   输出文件:pet.out   简单对比时间限制:1 s   内存限制:128 MB 最近,阿Q开了一间宠物收养所.收养 ...

  4. bzoj1208 [HNOI2004]宠物收养所(STL,Treap)

    1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5956  Solved: 2317[Submit][Sta ...

  5. BZOJ 1208: [HNOI2004]宠物收养所(BST)

    本来想先用set写一遍,再自己写个splay或treap,不过用set过了之后就懒得去写了....以后有空再来写吧..(不会有空的吧= = ------------------------------ ...

  6. BZOJ_1208_[HNOI2004]宠物收养所_SPLAY

    BZOJ_1208_[HNOI2004]宠物收养所_SPLAY Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望 ...

  7. bzoj 1208: [HNOI2004]宠物收养所 (Treap)

    链接:  https://www.lydsy.com/JudgeOnline/problem.php?id=1208 题面: 1208: [HNOI2004]宠物收养所 Time Limit: 10 ...

  8. 2018.07.06 BZOJ1208: HNOI2004宠物收养所(非旋treap)

    1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec Memory Limit: 162 MB Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收 ...

  9. BZOJ 1208: [HNOI2004]宠物收养所 SET的妙用

    1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4902  Solved: 1879 题目连接 http:/ ...

随机推荐

  1. Django的视图流式响应机制

    Django的视图流式响应机制 Django的响应类型:一次性响应和流式响应. 一次性响应,顾名思义,将响应内容一次性反馈给用户.HttpResponse类及子类和JsonResponse类属于一次性 ...

  2. 2018.09.15模拟总结(T1,T3)

    过了一周,终于迎来了第二次模拟(这不是期待的语气),看第一周毒瘤程度,我就觉得接下来的模拟只能更毒瘤. 花了10多分钟读完了三道题,觉得暴力还是挺好写的,然后在每一道题都思索那么几分钟后,觉得还是写暴 ...

  3. [19/04/13-星期六] 网络编程_基本概念(关注传输层、数据传输,TCP和UDP)

    一.概念 ▪ 什么是计算机网络? 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统, 网络管理软件及网络通信协议的管理和协调下,实现资源共享和信 ...

  4. 使用Jwt为.Net Core SignalR保驾护航

    前言 SignalR Demo搭建起来之后,是没有相应的认证和授权功能的.于是乎,参考官方文档实现了相应的逻辑. 简单认证 首先使用稍微简单的方式实现.添加如下代码: services.AddAuth ...

  5. SpringBoot实战(十三)之缓存

    什么是缓存? 引用下百度百科的解释: 缓存就是数据交换的缓冲区(又称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,找到了则直接执行,找不到的话则从内存中查找.由于缓存的运行速度 ...

  6. Redis(三)内存模型

    本文转载自编程迷思,原文链接 深入学习Redis(1):Redis内存模型 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可 ...

  7. HDU 1059(多重背包加二进制优化)

    http://acm.hdu.edu.cn/showproblem.php?pid=1059 Dividing Time Limit: 2000/1000 MS (Java/Others)    Me ...

  8. Adapter(适配器)模式

    1. 概述: 接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题.程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库的发展和进化.  例子1:iphone4,你即可以 ...

  9. C语言入门编程思维引导

    编程思维引导: C语言中 include<stdio.h>  称之为导包,导入写好的函数库,多个则依次写 #define N 3  意思是将N这个字母定义为数字3 当使用的时候就直接用 i ...

  10. springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven SSM

    A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技 ...