cf85d treap

此题正解应该是bst 出题人的blog:http://www.codeforces.com/blog/entry/2021

我看到有人有vector+二分查找过了的。如果二叉搜索树的深度在多一点,二分估计也难过啊

我的做法略微暴力,但是使用treap来维护的暴力

每个节点维护5个长度的和,那么根节点的sum5个值是由左右节点的5个值加上来的,由于只要求中间那个值和,所以我先加上左边的,那么右边的其实相当于我在往后面加,但是是求和,所以从左边的size开始的往后5位,那么对应下来就是左边的(s(s代表左边的节点个数)+i(i是右边各个元素小标)+1)%5,由于我的是从0开始的下标,所以要+1.那么最后所有的就可以对应和了.

查询的时候只要访问根节点的sum【2】即第三个节点的就好了。

有一点需要注意的是,由于treap会旋转,所以是采用赋值的形式而不能+=不然就会乱套了

(base) C:\Users\Administrator>conda activate pyh001 (pyh001) C:\Users\Administrator>pip install torch tensorboard Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Requirement already satisfied: torch in d:\anaconda\envs\pyh001\lib\site-packages (2.4.0+cu121) Requirement already satisfied: tensorboard in d:\anaconda\envs\pyh001\lib\site-packages (2.10.0) Requirement already satisfied: filelock in d:\anaconda\envs\pyh001\lib\site-packages (from torch) (3.15.4) Requirement already satisfied: typing-extensions>=4.8.0 in d:\anaconda\envs\pyh001\lib\site-packages (from torch) (4.12.2) Requirement already satisfied: sympy in d:\anaconda\envs\pyh001\lib\site-packages (from torch) (1.13.1) Requirement already satisfied: networkx in d:\anaconda\envs\pyh001\lib\site-packages (from torch) (3.1) Requirement already satisfied: jinja2 in d:\anaconda\envs\pyh001\lib\site-packages (from torch) (3.1.4) Requirement already satisfied: fsspec in d:\anaconda\envs\pyh001\lib\site-packages (from torch) (2024.6.1) Requirement already satisfied: absl-py>=0.4 in d:\anaconda\envs\pyh001\lib\site-packages (from tensorboard) (2.1.0) Requirement already satisfied: grpcio>=1.24.3 in d:\anaconda\envs\pyh001\lib\site-packages (from tensorboard) (1.62.2) Requirement already satisfied: google-auth<3,>=1.6.3 in d:\anaconda\envs\pyh001\lib\site-packages (from tensorboard) (2.29.0) Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in d:\anaconda\envs\pyh001\lib\site-packages (from tensorboard) (0.4.4) Requirement already satisfied: markdown>=2.6.8 in d:\anaconda\envs\pyh001\lib\site-packages (from tensorboard) (3.4.1) Requirement already satisfied: numpy>=1.12.0 in d:\anaconda\envs\pyh001\lib\site-packages (from tensorboard) (1.21.5) Collecting protobuf<3.20,>=3.9.2 (from tensorboard) ERROR: HTTP error 403 while getting https://pypi.tuna.tsinghua.edu.cn/packages/fd/38/cb53f28950a386c8d7e17fc305c97a158cf85d51d7e6caffe4f37336c138/protobuf-3.19.6-cp38-cp38-win_amd64.whl (from https://pypi.tuna.tsinghua.edu.cn/simple/protobuf/) (requires-python:>=3.5) ERROR: Could not install requirement protobuf<3.20,>=3.9.2 from https://pypi.tuna.tsinghua.edu.cn/packages/fd/38/cb53f28950a386c8d7e17fc305c97a158cf85d51d7e6caffe4f37336c138/protobuf-3.19.6-cp38-cp38-win_amd64.whl (from tensorboard) because of HTTP error 403 Client Error: Forbidden for url: https://pypi.tuna.tsinghua.edu.cn/packages/fd/38/cb53f28950a386c8d7e17fc305c97a158cf85d51d7e6caffe4f37336c138/protobuf-3.19.6-cp38-cp38-win_amd64.whl for URL https://pypi.tuna.tsinghua.edu.cn/packages/fd/38/cb53f28950a386c8d7e17fc305c97a158cf85d51d7e6caffe4f37336c138/protobuf-3.19.6-cp38-cp38-win_amd64.whl (from https://pypi.tuna.tsinghua.edu.cn/simple/protobuf/) (requires-python:>=3.5)
最新发布
11-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值