摘要:
每个楼房,还有修改操作。简单的想到用线段树来维护信息。 显然线段树只需要维护y/x即可,对于每一个楼房,能看见的条件就是前面楼房的y/x的严格小于当前楼房的y/x。 线段树的区间修改不再赘述。 那么怎么维护可以看到的楼房数呢? 考虑在线段树的每一个节点上用一个变量 来表示从这个节点的左端点向右端点看 阅读全文
摘要:
裸的LCT,关键是要怎么连边,怎么将这种弹飞关系转化成连边就行了。 那么我们可以这样连边: 一个节点i的爸爸就是i+ki。 没有i+ki那么就被弹飞了,即$i$的爸爸是虚拟节点n+1。 那么怎么求次数呢? i的深度就是次数 对于求深度,我们可以先将 弄成 ,然后通过 将`n+1 x`节点丢到一个Sp 阅读全文
摘要:
被概率冲昏的头脑~~~ 我们先将样例在图上画下来: 会发现,最大收益是: 看出什么了吗? 这不就是凸包吗? 跑一遍凸包就好了呀,这些点中,如果i号点是凸包上的点,那么它的ans就是自己(第二个点),不然的话,从上图来看,i的ans肯定和他相邻的两个是凸包边界的点有关(0节点和2节点),那么怎么求这个 阅读全文
摘要:
Link Cut Tree 的懒标记下传正确食用方法。 我们来逐步分析每一个操作。 1: :将u到v的路径上的点的权值都加上自然数c; 解决方法: 很显然,我们可以 split(u,v) 来提取 这一段区间,提取完了将 Splay(v),然后直接在 上打加法标记add即可。 代码: 2: :将树中原 阅读全文