cogs62 [HNOI2004] 宠物收养所
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] 宠物收养所相关推荐
- BZOJ 1208: [HNOI2004]宠物收养所
1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 7684 Solved: 3042 [Submit][S ...
- 1208: [HNOI2004]宠物收养所
1208: [HNOI2004]宠物收养所 1.用Treap树写: 只需要三个操作,插入,删除,查找(同时找出其前继后继): View Code /************************** ...
- BZOJ 1208: [HNOI2004]宠物收养所 (Treap)
BZOJ 1208: [HNOI2004]宠物收养所 题目概述: 有一家宠物收养所,提供两种服务:收养主人遗弃的宠物和让新主人领养宠物. 宠物收养所中总是会有两种情况发生:遗弃宠物过多和领养宠物人过多 ...
- BZOJ1208[HNOI2004]宠物收养场——treap
凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领 ...
- 洛谷P2286 [HNOI2004]宠物收养所 [STL,平衡树]
题目传送门 宠物收养所 题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的 ...
- bzoj1208: [HNOI2004]宠物收养所
Time Limit: 10 Sec Memory Limit: 162 MB Submit: 6182 Solved: 2396 [Submit][Status][Discuss] Descri ...
- B1208 [HNOI2004]宠物收养所 平衡树||set (滑稽)
这个题是一道splay裸题,但是我不太会写,所以用set直接水过去!!!哈哈哈哈,美滋滋. set总结: set是一个集合,然后里面没用重复的元素.里面有一些函数: begin() ,返回se ...
- 洛谷P2286 [HNOI2004]宠物收养场
题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...
- 洛谷 P2286 [HNOI2004]宠物收养场
题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...
最新文章
- oracle数据库性能awr,常见问题:如何使用AWR报告来诊断数据库性能问题
- MFC Combo-box显示大小
- 游戏设计中的算法题——计算宝物升级所需的资源数
- float php 运算_系统的讲解 - PHP 浮点数高精度运算
- OFFICE软件有哪三大语言功能?
- java batik 乱码_Batik渲染png图片异常的bug修复
- 腾讯地图和百度地图经纬度的相互转换
- 迅雷beat下载为php,2019苹果迅雷beat版链接下载地址-迅雷ios内测版ios13企业信任版app下载官方最新beta手机版-迅雷ios永久稳定版西西软件下载...
- html画excel表格边框,设置Excel表格和单元格的边框和底纹 html表格单元格边框
- 小程序 VS APP优缺点
- c语言编写用户注册程序,如何用c实现登录和注册的程序?
- 三大强者效应:鲶鱼效应,鳄鱼效应,鲦鱼效应
- win10 桌面(Windows 资源管理器)卡死的根本解决办法
- 【洛谷】P1598 垂直柱状图
- PCFG CKY句法分析
- 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)
- 三点水加一个必须的必
- what's IBM?
- 单片机外围电路设计之二:电容
- java超市收银系统mysql,java课程设计(含数据库代码)