摘要: 建最短路树的时候,优先队列加一条限制,当花费相同的时候id小的排前面 这样建出来的最短路树就是符合题意的 再考虑点分治 因为不满足前缀加减性,那么考虑按序遍历即可 考虑如何同时维护最大值及其个数 判断当前值是大于还是等于已经存的值 如果大于 替换掉,次数置为1 如果等于 次数++ 1 #includ 阅读全文
posted @ 2019-01-17 21:07 Dup4 阅读(146) 评论(0) 推荐(0)
摘要: 点分治,定权值,求另一关键字最小 不满足前缀加减性 可以按序遍历,用一数组$t[] 来维护路径为i的最小边数$ 再对于一个直系儿子对应的子树,先算距离求答案再更新$t数组,这样就不会重复$ 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 # 阅读全文
posted @ 2019-01-17 19:55 Dup4 阅读(127) 评论(0) 推荐(0)
摘要: 点分治,每次维护出边长模3余0, 1, 2的个数 那么答案就是 $cnt[0] * cnt[0] + cnt[1] * cnt[2] * 2$ 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define ll long long 5 # 阅读全文
posted @ 2019-01-17 18:11 Dup4 阅读(109) 评论(0) 推荐(0)