SBT(pet)

2024-01-06 21:32
文章标签 pet sbt

本文主要是介绍SBT(pet),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原题:HNOI2004 宠物收养所

方法:SBT 维护

program size_balanced_tree;{$inline on}
constmaxn=80000;
typepoint=^longint;
vars,l,r,w:array[0..maxn] of longint; a,b:point;ans,m,t,k,now,root,sto:longint;
procedure left(var i:longint);inline;
var j:longint;
beginj:=r[i];r[i]:=l[j];l[j]:=i;s[j]:=s[i];s[i]:=s[l[i]]+s[r[i]]+1;i:=j;
end;
procedure right(var i:longint);inline;
var j:longint;
beginj:=l[i];l[i]:=r[j];r[j]:=i;s[j]:=s[i];s[i]:=s[l[i]]+s[r[i]]+1;i:=j;
end;
procedure maintain(var t:longint; flag:boolean);inline;
beginif not flag then beginif s[l[l[t]]]>s[r[t]] then right(t) elseif s[r[l[t]]]>s[r[t]] then begin left(l[t]); right(t);end else exit;end else beginif s[r[r[t]]]>s[l[t]] then left(t) elseif s[l[r[t]]]>s[l[t]] then begin right(r[t]); left(t);end else exit;end;maintain(l[t],false);maintain(r[t],true);maintain(t,false);maintain(t,true);
end;
procedure insert(var x:longint; const k:longint);
beginif x=0 then begin inc(sto); x:=sto; w[x]:=k; s[x]:=1; exit; end;inc(s[x]); if k<w[x] then insert(l[x],k) else insert(r[x],k);maintain(x,k>=w[x]);
end;
procedure delete(var x:longint);
beginif (l[x]=0)or(r[x]=0) then begin x:=l[x]+r[x]; exit; end;left(x);right(l[x]);delete(r[l[x]]);
end;
function pred(var x:longint; const k:longint):point;
beginif (x=0)or(k=w[x]) then exit(@x);if k<w[x] then pred:=pred(l[x],k)else beginpred:=pred(r[x],k);if pred^=0 then exit(@x);end;
end;
function succ(var x:longint; const k:longint):point;
beginif (x=0)or(k=w[x]) then exit(@x);if k>w[x] then succ:=succ(r[x],k)else beginsucc:=succ(l[x],k);if succ^=0 then exit(@x);end;
end;
function getch:char; var k:byte;
beginfor k:=1 to 5 do read(getch);
end;
procedure readspace; var ch:char;
begin repeat read(ch); until ch=' '; end;beginassign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output);readln(m);for m:=1 to m do beginreadln(t,k);if root=0 then now:=t;if t=now then begin insert(root,k); continue; end;a:=pred(root,k);b:=succ(root,k);if a^=0 then begin add(ans,w[b^]-k); delete(b^); end elseif b^=0 then begin add(ans,k-w[a^]); delete(a^); end elseif k-w[a^]<=w[b^]-k thenbegin add(ans,k-w[a^]); delete(a^); end elsebegin add(ans,w[b^]-k); delete(b^); end; end;writeln(ans);close(input); close(output);
end.


这篇关于SBT(pet)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/577678

相关文章

ubuntu14 手动安装sbt

参见官网配置说明http://www.scala-sbt.org/release/tutorial/Manual-Installation.html    1、下载sbt通用平台压缩包:sbt-0.13.5.tgz   http://www.scala-sbt.org/download.html      2、建立目录,解压文件到所建立目录 $ sudo t

在windows7 IDEA sbt 插件安装配置教程

原文:http://blog.csdn.net/zrc199021/article/details/73543210 1. 在Windows中安装sbt 下载 官网: http://www.scala-sbt.org/  github: https://github.com/sbt/sbt/releases/download/v0.13.15/sbt-0.13.15.msi  (

Intellij IDEA 手动安装Scala 和SBT

jetBrains sbt插件库https://plugins.jetbrains.com/plugin/5007-sbt jetBrains scala插件库https://plugins.jetbrains.com/plugin/1347-scala 注意版本对应问题,不然会报错 ‘plugin scala is incompatible‘ 。 下载好文件后,按如下步骤操作 一、打

使用SBT正确构建IndexedRDD环境

IndexedRDD由AMPLab的Ankur Dave提出,它是Immutability和Fine-Grained updates的精妙结合。IndexedRDD是一个基于RDD的Key-Value Store,扩展自RDD[(K, V)],可以在IndexRDD上进行高效的查找、更新以及删除。由于其并没有合并到 Spark 的主项目分支,所以在使用时需要引入特别的对其的支持。 Indexe

ZOJ 2112 Dynamic Rankings (动态区间第K大) (线段树套SBT+二分)

题目:支持修改数组元素的区间第k大。 看题解这道题是可以用树状数组套主席树做的,但是树状数组套主席树不优化空间的话,要140MB左右,这题只给了32MB。 没看懂怎么优化,只能用线段树套平衡树了,我写的是线段树套SBT,线段树的每个节点上的SBT存这个节点代表的区间的所有数。 修改操作就是对于叶节点到根的所有SBT删除旧元素再加入新元素,删除的元素把下标入栈,插入元素时优先从栈中取。

2024-6-11-SPECT和PET的区别是什么

SPECT(单光子发射计算机断层扫描)和PET(正电子发射断层扫描)都是核医学成像技术,用于诊断和治疗监测。它们的主要区别在于使用的放射性示踪剂类型、成像技术和图像的详细程度: 示踪剂类型: SPECT 使用单光子放射性示踪剂,例如锝-99m或碘-123。这些示踪剂发射单个伽马射线,被探测器捕捉以形成图像。PET 使用正电子放射性示踪剂,如氟-18标记的葡萄糖(FDG)。这些示踪剂在体内发射正

BERT+PET方式数据处理

基于BERT+PET方式数据预处理介绍 BERT+PET方式数据预处理🐾 本项目中对数据部分的预处理步骤如下: 查看项目数据集编写Config类项目文件配置代码编写数据处理相关代码 1 查看项目数据集🐾 数据存放位置:/Users/***/PycharmProjects/llm/prompt_tasks/PET/data data文件夹里面包含4个txt文档,分别为:trai

头颈肿瘤在PET/CT中的分割:HECKTOR挑战赛| 文献速递-深度学习肿瘤自动分割

Title 题目 Head and neck tumor segmentation in PET/CT: The HECKTOR challenge 头颈肿瘤在PET/CT中的分割:HECKTOR挑战赛 01 文献速递介绍 高通量医学影像分析,常被称为放射组学,已显示出其在揭示定量影像生物标志物与癌症预后之间关系的潜力,包括在头颈(H&N)癌症的背景下(Vallieres等

如何安装sbt(sbt在ubuntu上的安装与配置)(有详细安装网站和图解)

sbt下载官网  选择对应的版本和安装程序 Download | sbt (scala-sbt.org) 安装 解压 将sbt-1.9.0.tgz上传到xshell,并解压 解压: tar -zxvf sbt-1.9.0.tgz 配置 1、在/home/hadoop/sbt中创建sbt脚本 /home/hadoop/sbt    注意要改成自己的地址 cd

sbt下载依赖太慢解决记录及配置阿里Maven仓库

新机器上安装的sbt执行太慢,主要是下载依赖包比较慢,还容易因下载不成功报错: downloading https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.4.0/error_prone_annotations-2.4.0.jar ...         [SUCCESSFUL ] com