摘要:
GSS7Can you answerthese queries VII给出一棵树,树的节点有权值,有两种操作:1.询问节点x,y的路径上最大子段和,可以为空2.把节点x,y的路径上所有节点的权值置为c分析:修改树路径的信息,可以考虑一下树链剖分、动态树。这题可以用树链剖分的方式来做,不会的可以看看这篇树链剖分---模板。其实树链剖分不难理解,一小时左右就能学会了。对于在一段区间的最大子段和问题,可以参考GSS1 spoj 1043 Can you answer these queries I 最大子段和由于x,y可能不在同一个重链上,所以在询问时需要分两段进行统计,合并的时候跟GSS1基本一样 阅读全文
摘要:
GSS6Can you answer these queries VI给出一个数列,有以下四种操作:I x y: 在位置x插入y。D x : 删除位置x上的元素。R x y: 把位置x用y取替。Q x y: 输出区间[x,y]的最大字段和。分析:其实这题是BZOJ 1500 [NOI2005]维修数列这题的简化版。使用splay来做非常简单。我的做法增加一个虚拟节点在数列的最开始处,增加两个虚拟节点在最后,这是为了方便在数列最后插入的操作。splay网上的资料比较多,其实splay比sbt、avl都简单。这里有我的一份总结,并且有一些资料:splay总结囧,我写的splay太慢了,最后上网搜了 阅读全文