博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

随笔分类 -  数据结构——堆 可并堆

摘要:无摘要.. 阅读全文
posted @ 2019-04-08 20:11 SovietPower 阅读(188) 评论(0) 推荐(0) 编辑
摘要:同BZOJ3784 阅读全文
posted @ 2019-01-19 07:52 SovietPower 阅读(404) 评论(0) 推荐(0) 编辑
摘要:给定一棵n个点的带权树,求树上n×(n1)2条路径中,长度最大的m条路径的长度。 n50000, mmin(3×105,n×(n1)2)阅读全文
posted @ 2019-01-18 21:09 SovietPower 阅读(602) 评论(0) 推荐(0) 编辑
摘要:四OJ Rank1 hhhha 阅读全文
posted @ 2018-12-04 22:59 SovietPower 阅读(1350) 评论(0) 推荐(1) 编辑
摘要:给定一个长为n的序列,多次询问[l,r]中最大的只出现一次的数。强制在线。 阅读全文
posted @ 2018-06-30 15:28 SovietPower 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题目链接 洛谷 SPOJ BZOJ1095(简化版) Description 给定一棵边带权的树,初始时所有点为白色。两种操作:1. 反转某点的颜色; 2. 询问树中最远的两个白色节点的距离(只有一个则为0)。 n105, m2×105。 \(So 阅读全文
posted @ 2018-03-21 18:45 SovietPower 阅读(290) 评论(0) 推荐(0) 编辑
摘要:"题目链接" "主要思路" cpp / 对于询问1,用堆代替multiset/Splay 对于询问2,multiset 1.注意哨兵元素 2.注意multiset中删除时是删除某元素的一个位置,而不是这个元素!这个值会全部都删掉 / include include include include c 阅读全文
posted @ 2018-02-09 17:08 SovietPower 阅读(170) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 还是80分,不是很懂。 cpp / 七个操作(用左偏树)(t2表示第二棵子树): 1.合并:直接合并(需要将一个t2中原有的根节点删掉) 2.单点加:把这个点从它的堆里删了,加了再插入回去(有负数)(它可能成为这一个堆的根,所以也要从t2中删除再插入) 3.整个连通块加:根节点打标记( 阅读全文
posted @ 2018-02-09 13:18 SovietPower 阅读(168) 评论(0) 推荐(0) 编辑
摘要:"题目链接" "左偏堆学习 推荐" cpp include include include define gc() (SS==TT &&(TT=(SS=IN)+fread(IN,1,1val[B]||(val[A]==val[B]&&A B)) std::swap(A,B); son[A][1]=M 阅读全文
posted @ 2018-02-09 13:15 SovietPower 阅读(184) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 附纯SplayTLE代码及主要思路: cpp / 可以看做序列有n段,Insert是每次在每一段最后插入一个元素 只有插入,没有删除,所以插入一个元素对于询问1影响的只有该元素与前边一个元素(同段)、下一段的开头元素 故只需删掉该段最后元素与下一段开头元素的差,再加入新元素与下一段开头 阅读全文
posted @ 2018-02-09 12:51 SovietPower 阅读(198) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示