bzoj1588[HNOI2002]营业额统计
来源:互联网 发布:windows中文件切换 编辑:程序博客网 时间:2024/05/16 10:03
好裸的题,好坑的数据= =详见讨论版
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;#define MAXN 500010#define INF 0x7fffffffstruct node{ int ch[2],f,v;}tr[MAXN];int a,tmp,x1,x2,ans;int n,root,tot;void SC(int x,int y,int z){ tr[x].ch[z]=y; tr[y].f=x;}inline bool d(int x) {return tr[tr[x].f].ch[1]==x;}void rot(int x){ int y=tr[x].f,z=tr[y].f,tt=d(x); SC(z,x,d(y));SC(y,tr[x].ch[!tt],tt);SC(x,y,!tt); //updata(y);}void splay(int x,int f){ //PD(x); while (tr[x].f!=f) { if (tr[tr[x].f].f==f) {rot(x);break;} if (d(x)==d(tr[x].f)) {rot(tr[x].f);rot(x);} else {rot(x);rot(x);} } //updata(x);}void Insert(int y){ if (!root) { root=++tot; tr[tot].v=y;tr[tot].f=0; return ; } int x=root,z; while (x) { z=x; if (y<tr[x].v) x=tr[x].ch[0]; else x=tr[x].ch[1]; } if (y<tr[z].v) tr[z].ch[0]=++tot; else tr[z].ch[1]=++tot; tr[tot].v=y;tr[tot].f=z; splay(tot,0);root=tot;}long long get(int x,int s){ int tmp=tr[x].v; while (x) { x=tr[x].ch[s]; if(x==0 || x==n+1) break; tmp=tr[x].v; } return tmp;}int main(){ scanf("%d", &n); ans=0; scanf("%d", &ans); tr[0].v=tr[n+1].v=INF; Insert(ans); for (int i=2;i<=n;i++) { if (scanf("%d", &a)==EOF) a=0; Insert(a); x1=get(tr[root].ch[0],1); x2=get(tr[root].ch[1],0); tmp=INF; if (x1<INF) tmp=a-x1; if (x2<INF) tmp=min(tmp,x2-a); ans+=tmp; } printf("%d\n", ans);}
0 0
- hnoi2002 bzoj1588 营业额统计
- [BZOJ1588][HNOI2002]营业额统计
- bzoj1588【HNOI2002】营业额统计
- BZOJ1588: [HNOI2002]营业额统计
- bzoj1588[HNOI2002]营业额统计
- 【bzoj1588】[HNOI2002]营业额统计
- 【BZOJ1588】【HNOI2002】营业额统计
- [bzoj1588][HNOI2002]营业额统计
- bzoj1588: [HNOI2002]营业额统计
- BZOJ1588: [HNOI2002]营业额统计
- bzoj1588: [HNOI2002]营业额统计
- BZOJ1588[HNOI2002]营业额统计
- bzoj1588 [HNOI2002]营业额统计
- bzoj1588 [HNOI2002]营业额统计
- BZOJ1588: [HNOI2002]营业额统计
- bzoj1588: [HNOI2002]营业额统计
- 【BZOJ1588】【HNOI2002】营业额统计 splay
- bzoj1588 [HNOI2002]营业额统计 (Splay)
- 花生壳使用 - 代理发布本地Tomcat
- POJ 2610:Dog & Gopher
- 图片压缩指定大小
- Ninja初步
- 方差,偏差的区别
- bzoj1588[HNOI2002]营业额统计
- ios development-cocoapods installation
- RSA 加密算法(.NET)
- linux驱动心得
- IOS8以上版本,使用UIAlertController代替 UIActionSheet和UIAlertView
- android studio编程时引入外部字体样式
- 经典算法学习——堆排序
- Python第四讲类、对象和函数
- Xcode重构功能怎么用我全告诉你