T1
阅读题干,显然,字典序排序。
首先很容易想到一个错误做法:
从前往后,每一个字符与后一个进行比较,
只要比后面的大,
就交换。
但是仔细想想实际上是看了样例
然后发现显然不对。
然后换一种贪心思路:
我们把未排序的部分中最小的字符尽可能地前移。
显然正确。(95分)
由于复杂度限制,
需要使用线段树或平衡树进行优化。不会
T2
首先递推从每个点出发单调下降的路径数量。
对于每个点(x),设从(x)出发,到每颗子树中单调下降的路径数量分别为(s_1),…,(s_k),那么以该节点为海拔最高点的合法路径数量为
[egin{equation*}
left(sum_{i=1}^ks_i
ight)^2-sum_{i=1}^k{s_i^2}
end{equation*}
]
将所有点的贡献相加就是答案。
时间复杂度(O(n))。
T3
通过(bfs)求出(dis_{x,y,0/1})表示从(x)到(y)长度为偶数/奇数的最短路径,那么存在一条从(x)到(y)长度为(d)的路径当且仅当(dis_{s,y,d~ ~mod~ ~2}le d)
空间复杂度较大,可以通过把询问离线将空间复杂度优化成(O(n))。
时间复杂度(O(n^2))。
T4
不会