有一个点超时,确实是个很简单的splay#include<cstdio>
#include<iostream>
using namespace std;
int n,shu[1000006][2],root,size,b1,b2,sum1,sum[1000005],zhi[1000005];
int fa[1000005];
void xuan(int a1)
{int a2,a3,l,r;a2=fa[a1];a3=fa[a2];if(a2==root)root=a1;elseif(a2==shu[a3][0])shu[a3][0]=a1;elseshu[a3][1]=a1;if(shu[a2][0]==a1)l=0;elsel=1;r=l^1;fa[a1]=a3;fa[a2]=a1;shu[a2][l]=shu[a1][r];shu[a1][r]=a2;fa[shu[a2][l]]=a2;return;
}
void zhuan(int a1)
{int a2,a3;for(;a1!=root;){a2=fa[a1];a3=fa[a2];if(a2!=root)if(a2==shu[a3][0]^a1==shu[a2][0])xuan(a1);elsexuan(a2);xuan(a1);}
}
void jia(int &a1,int a2,int a3)
{if(a1==0){size++;a1=size;zhi[a1]=a2;sum[a1]=1;fa[a1]=a3;zhuan(a1);return;}if(zhi[a1]==a2)sum[a1]++;elseif(zhi[a1]<a2)jia(shu[a1][1],a2,a1);elsejia(shu[a1][0],a2,a1);return;
}
void qian(int a1,int a2)
{if(a1==0)return;if(zhi[a1]==a2)b1=a2;elseif(zhi[a1]<a2){b1=zhi[a1];qian(shu[a1][1],a2);}elseqian(shu[a1][0],a2);return;
}
void hou(int a1,int a2)
{if(a1==0)return;if(zhi[a1]==a2)b2=a2;elseif(zhi[a1]>a2){b2=zhi[a1];hou(shu[a1][0],a2);}elsehou(shu[a1][1],a2);return;
}
int main()
{scanf("%d",&n);scanf("%d",&sum1);jia(root,sum1,0);for(int i=1;i<n;i++){int a1;scanf("%d",&a1);b1=-1;b2=-1;qian(root,a1);hou(root,a1);if(b1==-1)sum1+=b2-a1;elseif(b2==-1)sum1+=a1-b1;elseif(a1-b1<=b2-a1)sum1+=a1-b1;elsesum1+=b2-a1;jia(root,a1,0);}printf("%d",sum1);return 0;
}

转载于:https://www.cnblogs.com/xydddd/p/5138572.html

splay 1296 营业额统计相关推荐

  1. CJOJ 1308 【HNOI 2002 】营业额统计 / CodeVS 1296 营业额统计

    CJOJ 1308 [HNOI 2002 ]营业额统计 / CodeVS 1296 营业额统计 Description Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并 ...

  2. [HNOI2002]营业额统计 Splay tree入门题

    [HNOI2002]营业额统计 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1588 [HNOI2002]营业额统计 Time Limit ...

  3. HNOI 2002 营业额统计(Splay树)

    1588: [HNOI2002]营业额统计 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 6923  Solved: 2286 [Submit][St ...

  4. BZOJ 1588: [HNOI2002]营业额统计

    Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...

  5. [BZOJ 1588] [HNOI 2002] 营业额统计

    1588: [HNOI2002]营业额统计 Time Limit: 5 SecMemory Limit: 162 MB Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任 ...

  6. bzoj1588 [HNOI2002]营业额统计

    1588: [HNOI2002]营业额统计 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 17931  Solved: 7391 [Submit][S ...

  7. P2234 [HNOI2002]营业额统计

    P2234 [HNOI2002]营业额统计 这题没有用splay写,罪过 就是找一下前驱与后继,然后判断一下这个值出现没出现过 判重就是最暴力的拿数组判断就可以了 只不过,值有可能为负数,所以整体平移 ...

  8. 1588: [HNOI2002]营业额统计 - BZOJ

    Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...

  9. HYSBZ 1588 营业额统计 伸展树

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1588 题意: Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任 ...

最新文章

  1. 服务器虚拟化组网方案,服务器虚拟化部署方案计划.doc
  2. mybaits四-1:增删改查的实现
  3. 吴恩达机器学习笔记:(四)矩阵、多元梯度下降
  4. Linux系统安装python3和创建python3虚拟环境
  5. Visual Studio 2008 响应很慢 是怎么回事?
  6. linux集群管理权限,Linux下ACL权限管理
  7. 如何在 C# 中使用匿名类型
  8. springMVC 源码级别总结原理,DispatcherServlet核心方法
  9. 如何把暂存区恢复成和HEAD的一样?
  10. PHP电子合同对接流程,E签宝电子合同对接实战经验
  11. linux chmod修改权限失败,Linux chmod修改文件夹权限
  12. 【二十二】win 10 :Jmeter 报告可视化 —— 配置 Jmeter 接口 HTML 可视化测试报告,Jenkins + Jmeter + Ant 自动化集成环境搭建
  13. Monkeyrunner脚本的录制与回放
  14. Ubuntu20.04安装 Redis 并配置 phpRedisAdmin
  15. 在Mac上使用Charles抓包总是unknown
  16. python web异步_如何使用python中的理解来批处理异步web请求?
  17. vrep中视觉传感器(Vision sensor)
  18. 搭建以太坊私有链-单机2节点
  19. 14Python爬虫---爬虫伪装浏览器
  20. java contains 大小写_使用.contains方法忽略大小写的选项?

热门文章

  1. linux计时函数的使用
  2. .net framework 4中SpinLock和lock的区别
  3. 2.2栈的另一个应用:括号匹配
  4. Windows Server中的故障转移群集的实现机制
  5. 微软解释Edge浏览器比Chrome更加安全的原因
  6. JAVA NIO存在的问题
  7. cenots6 系统服务优化
  8. Mac下安装PIL库
  9. 检查单 2014-06-20-01
  10. 6.2 IP子网划分