博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj4864: [BeiJing 2017 Wc]神秘物质
阅读量:5236 次
发布时间:2019-06-14

本文共 2004 字,大约阅读时间需要 6 分钟。

4864: [BeiJing 2017 Wc]神秘物质

Time Limit: 20 Sec  
Memory Limit: 256 MB
Submit: 99  
Solved: 56
[ ][ ][ ]

Description

21ZZ 年,冬。
小诚退休以后, 不知为何重新燃起了对物理学的兴趣。 他从研究所借了些实验仪器,整天研究各种微观粒子。这
一天, 小诚刚从研究所得到了一块奇异的陨石样本, 便迫不及待地开始观测。 在精密仪器的视野下,构成陨石
的每个原子都无比清晰。 小诚发现, 这些原子排成若干列, 每一列的结构具有高度相似性。于是,他决定对单
独一列原子进行测量和测试。被选中的这列共有 N 个顺序排列的原子。 最初, 第 i 个原子具有能量 Ei。 随着
时间推移和人为测试, 这列原子在观测上会产生两种变化:
merge x e 当前第 x 个原子和第 x+1 个原子合并,得到能量为 e 的新原子;
insert x e 在当前第 x 个原子和第 x+1 个原子之间插入一个能量为 e 的新原子。
对于一列原子,小诚关心的是相邻一段中能量最大和能量最小的两个原子的能量差值,
称为区间极差。 因此, 除了观测变化外,小诚还要经常统计这列原子的两类数据:
max x y 当前第 x 到第 y 个原子之间的任意子区间中区间极差的最大值;
min x y 当前第 x 到第 y 个原子之间的任意子区间中区间极差的最小值。
其中, 子区间指的是长度至少是 2 的子区间。
小诚坚信这项研究可以获得诺贝尔物理学奖。为了让小诚早日了结心愿,你能否帮助他实现上述的观测和测量呢?

哇啊啊啊啊啊啊

这道题对我这个蒟蒻来说好复杂!!!

没有看别人的代码

全是自己yy的(有些是问师兄的QAQ)

写了接近三个小时,调来调去

pushup函数写错了也调了好久

不过写完了好激动啊啊啊啊

有点懒,具体细节就不讲啦

其实就是splay

然后要维护两点之前差的绝对值的最小值

其他的都没什么了

代码力不够,好多细节都处理了很久

不说了不说了

激动着呢

还排了status 13(虽然只有56人AC)

#include
#include
#include
const int N=2*1e5+100;struct node{ int c[2],fa,size,v,max,min,cha,chamin;}tr[N];int root,n,cd;int read(){ int ans=0;char t=getchar(); while(t<'0'||t>'9') t=getchar(); while(t>='0'&&t<='9') ans=ans*10+t-'0',t=getchar(); return ans;}void pushup(int k){ int l=tr[k].c[0],r=tr[k].c[1]; tr[k].size=tr[l].size+tr[r].size+1; if(k==1||k==n+2||k==2) { if(k!=2) tr[k].max=0,tr[k].min=1e8; else tr[k].max=tr[k].min=tr[k].v,tr[k].chamin=tr[k].cha; tr[k].chamin=1e8; } else tr[k].max=tr[k].min=tr[k].v,tr[k].chamin=tr[k].cha; if(l) tr[k].max=std::max(tr[l].max,tr[k].max),tr[k].min=std::min(tr[k].min,tr[l].min),tr[k].chamin=std::min(tr[k].chamin,tr[l].chamin); if(r) tr[k].max=std::max(tr[r].max,tr[k].max),tr[k].min=std::min(tr[k].min,tr[r].min),tr[k].chamin=std::min(tr[k].chamin,tr[r].chamin);}void build(int l,int r,int fa){ if(l>r) return ; if(l==r) { tr[l].size=1;tr[l].fa=fa; if(l
>1; build(l,mid-1,mid);build(mid+1,r,mid); tr[mid].fa=fa;pushup(mid); if(mid

转载于:https://www.cnblogs.com/Brian551/p/7353034.html

你可能感兴趣的文章
jquery mobile
查看>>
如何在vue单页应用中使用百度地图
查看>>
Springboot使用步骤
查看>>
Spring属性注入
查看>>
Springboot-配置文件
查看>>
Springboot-日志框架
查看>>
SpringBoot-thymeleaf
查看>>
P1908-逆序对
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>
spring与quartz整合
查看>>
Kattis之旅——Eight Queens
查看>>
3.PHP 教程_PHP 语法
查看>>
Duilib扩展《01》— 双击、右键消息扩展
查看>>
利用Fiddler拦截接口请求并篡改数据
查看>>
python习题:unittest参数化-数据从文件或excel中读取
查看>>
Android控件之GridView探究
查看>>
在工程中要加入新的错误弹出方法
查看>>
PS 滤镜— — sparkle 效果
查看>>
snmpwalk命令常用方法总结
查看>>