摘要: 比赛的时候根据数据范围马上猜出了是通过轻重点分块,但是在维护set的时候犯了一个nt错误 选择了插入邻边的权值去判断第一个未出现的答案,怎么想都觉得复杂度很高。 其实可以选择先插入所有得可能答案,然后对邻边影响得答案进行删除,这样set中得第一个元素就是答案。 这题复杂度保证得原因是,通过分块,对于 阅读全文
posted @ 2020-07-22 22:25 朝暮不思 阅读(425) 评论(4) 推荐(0) 编辑
摘要: 通过领悟题意,发现本题只与关键点和他们的lca有关,因此把只需要对他们建虚树 对于dp思路,如果x不是关键点,那么观察子树中有多少需要断开的,如果超过1,那么直接断开这个点,如果等于1,先保留看看能否与后面的一起。 如果是关键点,那就必须要把当前点和子树中的所有关键点断开,首先我们知道一定存在合法方 阅读全文
posted @ 2020-07-22 20:32 朝暮不思 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 虚树对于多次询问的时候有这优化复杂度的好处,其原理就是只保留有用节点和必须保留的有用节点的lca 先求一遍dfs序后,用栈模拟操作,根据lca是否在栈中确定是否要将lca加入栈,因为重构了树,因此原来的边的信息需要进行更换 对于本题,新的边其实就是路径上的边权的最小值,这是因为随便切掉一个边就能把他 阅读全文
posted @ 2020-07-22 14:45 朝暮不思 阅读(143) 评论(0) 推荐(0) 编辑