CODEVS1296
2024-03-31 08:47:03
//treap 的简单应用
#include <iostream>
#include<stdio.h>
#include<cstdio>
#include<cstdlib>
using namespace std;
typedef long long ll;
int t1,t2;
struct node
{node *ch[2];int s,v,r;node(int v):v(v){r=rand();s=1;ch[0]=ch[1]=NULL;}void maintain(){s=1;if(ch[0])s+=ch[0]->s;if(ch[1])s+=ch[1]->s;}
}*root;
void rotate(node* &o,int d)
{node *k=o->ch[d^1];o->ch[d^1]=k->ch[d];k->ch[d]=o;o->maintain();k->maintain();o=k;
}
void insert(node* &o,int v)
{if(o==NULL){o=new node(v);o->maintain();return ;}int d=v<o->v?0:1;insert(o->ch[d],v);if(o->ch[d]->r>o->r)rotate(o,d^1);o->maintain();
}
void findsmall(node *o,int v)
{if(o==NULL)return;if(o->v>=v)findsmall(o->ch[0],v);else{t1=o->v;findsmall(o->ch[1],v);}
}
void findbig(node *o,int v)
{if(o==NULL)return;if(o->v<v)findbig(o->ch[1],v);else{t2=o->v;// cout<<"t2:"<<t2<<endl;findbig(o->ch[0],v);}
}int main()
{int n;root=NULL;scanf("%d",&n);int ans=0;for(int i=1;i<=n;i++){int x;scanf("%d",&x);if(i==1)ans+=x;else{t1=-999999999;t2=999999999;findsmall(root,x);findbig(root,x);// cout<<t1<<" "<<t2<<endl;int temp=min(abs(x-t1),abs(x-t2));ans+=temp;}insert(root,x);}printf("%d\n",ans);return 0;
}
CODEVS1296相关推荐
- 【Tyvj1185】【codevs1296】【BZOJ1588】营业额统计,Splay练习
传送门1 传送门2 传送门3 写在前面:身体不舒服,感觉有点差 思路:查询时先找是否有这个元素,没有的话再分别找前驱后继. 注意:BZOJ数据有错,详见讨论版 代码: #include<bits ...
最新文章
- c语言程序设计样板,《C语言程序设计》课程设计报告书样板.doc
- canal mysql 数据同步
- iOS开发-缓存图片到沙盒--思路
- 如何修改matplotlib的图例的标题的字体大小
- print_w php,THINKPHP的dump打印数组函数,输出在浏览器非常友好。
- 内核并发控制---读写自旋锁 (来自网易)
- 对java类中注释的认识
- 三级网络技术无纸化模拟软件 (未来)教育
- JavaWeb实现视频在线播放
- 常用的excel函数—汇总
- Java 8:那些Java8的常见写法
- 微软蓝牙鼠标3600拆解
- VUE使用benz-amr-recorder 实现解码、播放
- linux 谷歌日语输入法下载软件,Linux Mint---fcitx中文,日语输入法
- C语言,有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中
- [译] FACE ID 对易用性意味着什么
- python len ljust_python中ljust的用法
- codeforces1098D Eels
- 华为最新鸿蒙消息,飞象网项立刚:华为鸿蒙7年后全球第一!网友:oppo第一个反对!...
- Linux内核scatterlist API介绍 DMA SG搬移
热门文章
- Linux(Centos7) 报 “RTNETLINK answers: File exists” 问题的解决
- 拆解玩具电池充电器:充久了可能会爆,廉价电路方案让人震惊!
- 20doing 动名词
- the little schemer 笔记(9)
- PPT修改尺寸(修改幻灯片大小)
- Android是如何在不同屏幕上适配图片的 -- 或控件大小
- 区块链打击食品欺诈:以挪威三文鱼为例
- 百度账号更换绑定的手机号
- 计算机存储程序的理论由谁提出,存储程序的概念是由谁提出来的
- html未响应是什么原因,ie浏览器未响应如何解决