T2:交通网络

: 30分

只需依题目要求操作即可


: 对于另20分(可获得50分)

保证没有2,3操作,数据范围200000,我们需要一个单次操作 的算法来实现,路径加操作易想到差分,通过将路径拆分为两段进行维护


: 对于另30分(可获得80分)

此时没有3操作,由于只需要在最后输出权值,可以想到离线维护,先将所有需要加的点读入进来建树,再做如上操作
另:每次加入一个点时,将它的边建好,其他需要的信息维护好也可以实现动态维护这个操作


: 40分(100分)

根据上面的思路,可以考虑离线处理本题,可以发现对于3操作,删去节点后始终保证树的连通,隐藏含义即为删去的都是当前树的叶子节点,所以后面增加的点提前加上并不影响前面的修改操作,故只需要先将所有操作读进来,将所有的加入,再标记出已删除的点,判断哪些点仍在树上即可。
时间复杂度 ,若使用tarjan求LCA可以优化至

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务