bzoj1588 营业额统计
来源:互联网 发布:淘宝属于阿里巴巴吗 编辑:程序博客网 时间:2024/05/29 08:18
Treap学的hzwer的模版,感觉还是比较轻松愉快的
/************************************************************** Problem: 1588 User: Clare Language: C++ Result: Accepted Time:196 ms Memory:2840 kb****************************************************************/ #include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <cmath>#include <queue>#include <vector>using namespace std; #define N 100010#define INF 1000000000 int n,tot,root,ans1,ans2;long long Ans;int l[N],r[N],rd[N],v[N]; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch<='9'&&ch>='0'){x=x*10+ch-'0';ch=getchar();} return x*f;} void R_rotate(int &k){ int tmp=l[k]; l[k]=r[tmp];r[tmp]=k;k=tmp;} void L_rotate(int &k){ int tmp=r[k]; r[k]=l[tmp];l[tmp]=k;k=tmp;} void Insert(int &k,int x){ if(k==0) { k=++tot;v[k]=x;rd[k]=rand(); return; } if(v[k]>x) { Insert(l[k],x); if(rd[l[k]]<rd[k])R_rotate(k); } else { Insert(r[k],x); if(rd[r[k]]<rd[k])L_rotate(k); }} void Get_before(int k,int x){ if(k==0) return; if(v[k]<=x) { ans1=v[k];Get_before(r[k],x); } else Get_before(l[k],x);} void Get_after(int k,int x){ if(k==0) return; if(v[k]>=x) { ans2=v[k];Get_after(l[k],x); } else Get_after(r[k],x);} int main(){ n=read(); for(int i=1;i<=n;i++) { int x; if(scanf("%d",&x)==EOF) x=0; if(i==1) { Ans+=abs(x);Insert(root,x); continue; } ans1=-INF;ans2=INF; Get_after(root,x);Get_before(root,x); Ans+=min(x-ans1,ans2-x); Insert(root,x); } cout<<Ans<<endl; return 0;}
0 0
- hnoi2002 bzoj1588 营业额统计
- [BZOJ1588][HNOI2002]营业额统计
- bzoj1588营业额统计
- bzoj1588【HNOI2002】营业额统计
- BZOJ1588: [HNOI2002]营业额统计
- bzoj1588.营业额统计(splay)
- bzoj1588 营业额统计
- bzoj1588[HNOI2002]营业额统计
- 【bzoj1588】[HNOI2002]营业额统计
- 【BZOJ1588】【HNOI2002】营业额统计
- bzoj1588 营业额统计
- [bzoj1588][HNOI2002]营业额统计
- bzoj1588: [HNOI2002]营业额统计
- BZOJ1588: [HNOI2002]营业额统计
- BZOJ1588 营业额统计
- 【Bzoj1588】营业额统计
- bzoj1588: [HNOI2002]营业额统计
- BZOJ1588[HNOI2002]营业额统计
- 使用dbcp连接池用getJdbcTemplate操作clob字段
- 排序查找相关题目
- HttpURLConnection和httpclient添加代理IP和端口
- 程序员日常应该如何构建自己的技术知识体系
- 开栏
- bzoj1588 营业额统计
- 如何让数据像高圆圆一样美?
- iOS项目结构
- 队列类的模板实现
- php 返回查询结果某个字段
- 百度地图 SDK 错误 详解
- linux动态模块的编译及安装
- 使用Session防止表单重复提交
- [经验技巧] 小米路由器mini锐捷认证 (更新:解决无法自启问题)