这应该是一个简要的题解,由于作者时间有限,我大概描述一下思路,便于自己的回忆,希望能带给大家一些帮助!
A题是一个树上问题,我们发现每条边理论是走两遍的,因此我们需要找出直径尽可能让他少走的距离更多
于是我们发现和一个点距离最远的也是这个直径的端点,我们预处理树上倍增维护距离就可以!
B题是一个dp题,我们找到偏序关系,然后用树状数组维护,或者我们直接分治也可以!
C题是一个状压dp,和一个最短路,我们只需要根据关键点求最短路,然后最短路可以用dij或者spfa,然后剩下的我们状压之前的状态!
D题这题我们可以有一种直接线段树的做法,然后只要维护区间max和min就可以,但是也可以用莫队维护,莫队需要我们离线,我们离线下来统计这个区间出现了多少个数就可以了!
E题是一道签到题,我们只需要根据均值不等式的思想推出ans即可!
F题是一个图论题,我们可以用各种有关于图论连通性的算法来做,我们可以dfs也可以bfs,值得注意的我们可以用vector建图,也可以用链式前向星建图,这道题我们的方法比较多,可以类比一下!
G题是一个枚举模拟题,我们枚举一个字母的出现次数,剩下的模拟一下,就可以求出最多有多少满足条件的解,然后我们注意的是需要满足每个字母的出现次数一定是在符合的范围内的!
H题我们只需要会二维前缀和,剩下的我们根据每种字母的出现次数来算二维前缀和来二分就可以了!
稍微有点卡常请注意常数优化!
I题刚开始只会st表后来发现这个东西有单调性可以用一类类似于单调栈的思路来想一下,我们这里具体的可以用单调队列维护!
J题还是一道签到题,判断奇偶性就可以了