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;
}

转载于:https://www.cnblogs.com/xzz_233/p/cogs62.html

cogs62 [HNOI2004] 宠物收养所相关推荐

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

    1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 7684  Solved: 3042 [Submit][S ...

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

    1208: [HNOI2004]宠物收养所 1.用Treap树写: 只需要三个操作,插入,删除,查找(同时找出其前继后继): View Code /************************** ...

  3. BZOJ 1208: [HNOI2004]宠物收养所 (Treap)

    BZOJ 1208: [HNOI2004]宠物收养所 题目概述: 有一家宠物收养所,提供两种服务:收养主人遗弃的宠物和让新主人领养宠物. 宠物收养所中总是会有两种情况发生:遗弃宠物过多和领养宠物人过多 ...

  4. BZOJ1208[HNOI2004]宠物收养场——treap

    凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领 ...

  5. 洛谷P2286 [HNOI2004]宠物收养所 [STL,平衡树]

    题目传送门 宠物收养所 题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的 ...

  6. bzoj1208: [HNOI2004]宠物收养所

    Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 6182  Solved: 2396 [Submit][Status][Discuss] Descri ...

  7. B1208 [HNOI2004]宠物收养所 平衡树||set (滑稽)

    这个题是一道splay裸题,但是我不太会写,所以用set直接水过去!!!哈哈哈哈,美滋滋. set总结: set是一个集合,然后里面没用重复的元素.里面有一些函数: begin()     ,返回se ...

  8. 洛谷P2286 [HNOI2004]宠物收养场

    题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...

  9. 洛谷 P2286 [HNOI2004]宠物收养场

    题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...

最新文章

  1. oracle数据库性能awr,常见问题:如何使用AWR报告来诊断数据库性能问题
  2. MFC Combo-box显示大小
  3. 游戏设计中的算法题——计算宝物升级所需的资源数
  4. float php 运算_系统的讲解 - PHP 浮点数高精度运算
  5. OFFICE软件有哪三大语言功能?
  6. java batik 乱码_Batik渲染png图片异常的bug修复
  7. 腾讯地图和百度地图经纬度的相互转换
  8. 迅雷beat下载为php,2019苹果迅雷beat版链接下载地址-迅雷ios内测版ios13企业信任版app下载官方最新beta手机版-迅雷ios永久稳定版西西软件下载...
  9. html画excel表格边框,设置Excel表格和单元格的边框和底纹 html表格单元格边框
  10. 小程序 VS APP优缺点
  11. c语言编写用户注册程序,如何用c实现登录和注册的程序?
  12. 三大强者效应:鲶鱼效应,鳄鱼效应,鲦鱼效应
  13. win10 桌面(Windows 资源管理器)卡死的根本解决办法
  14. 【洛谷】P1598 垂直柱状图
  15. PCFG CKY句法分析
  16. 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)
  17. 三点水加一个必须的必
  18. what's IBM?
  19. 单片机外围电路设计之二:电容
  20. java超市收银系统mysql,java课程设计(含数据库代码)

热门文章

  1. 【HBase】学习笔记
  2. Android Camera 摄像 demo
  3. Linux系统下通过命令行对mysql数据进行备份和还原
  4. 对于glut和freeglut的一点比较和在VS2013上的配置问题
  5. zoj3494BCD Code(ac自动机+数位dp)
  6. 详解Cookie 【转】
  7. YUI3学习笔记 ( 8 )
  8. 四剑客查找字符_linux 四剑客 find 、grep、sed、awk整理
  9. Spark源码分析之Master主备切换机制
  10. c语言 消息框,C# McssageBox:消息框