今天很遗憾,120分。
100+20+0=120分。
T1:经济编码
https://jzoj.net/senior/#contest/problems/2102
非常的水~
我们的思想肯定是每次找最小和次小的,然后每次就合并他们,但是这样每次排序,就有O(
n2log
n)的复杂度,肯定过不了。
那么我们就思考每次用一个小根堆来维护最小值,这样就可以达到O(n log n)的复杂度。每次记录合并后的父亲和他父亲的儿子,这样就等于直接构造出了那棵树,再遍历求出每个节点的深度即可。
T2:【雅礼联考GDOI2017模拟9.2】Ztxz16学图论
https://jzoj.net/senior/#contest/problems/2102
我不知道该不该弃疗,LCT,或者莫队算法。
大概是这样的:
首先,分成
n√
块,然后每次区间转移到下一位,分块的交接点分为左边和右边,右边用按至合并,左边就每次修改并查集,记录下来,然后每次再撤销回去。
太可怕了~
T3:【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划
https://jzoj.net/senior/#contest/show/2102/2
看起来很难,找环,其实就是一个最大生成树(森林)。排序,每次添加一条边,如果这条边不加,就加入答案中。
09-01
09-01