模拟13
T1
不难看出这个排列遍历了整棵树,于是所有边权和一定是答案的一个下界,然后随便构造一下就能发现可以走出所有边权和,真的是想怎么构造就能怎么构造
T2
题目比较神,考场上只会暴力模拟。
发现对原数组修改不大好搞,于是处理出它的逆数组,令pos[a[i]]=i,然后观察性质,得到我们只能在pos数组上边交换邻项,并且当且仅当邻项之差的绝对值大于等于k的时候才能交换,所以可以得到,如果两个邻项之差小于了k,相对位置就确定了,然后对pos数组topsort即可,但是边数非常多需要优化一下,怎么优化呢?发现建了很多无用的边,我们其实只用建离该点最近的边,因为这样就可以覆盖到整个区间。
只能倒着跑最大top序,其实很显然比如,312和231
T3
当时想到了树的写法然后就一直在想怎么转化成树然后甚至想到了缩边双。。。
其实想到了树的写法别的就应该比较好想了,把非树边也当作一条假的树边处理一下就行了。
注意为了保证方案数不搞出重复的需要确定每一条非树边唯一属于一个点,用Dfn序即可。
int - > long long
0 - > 100