A:循环依赖
直接建边判环就可以
考试的时候脑瘫tarjan写挂了
B:A
对于所有询问每次暴力跑
发现x只有6e4 所以可以记忆化一下
然后卡卡常就有40分了
正解:
求最大的axx+b*x
首先对于x小于0和大于0分开讨论
然后发现可以直接除掉一个x
除掉x之后变成了ax+b
然后单调栈维护凸包就可以了
C:B
暴力dfs
可以对当前a数组的状态哈希一下 然后记忆化就可以有30了
所有a[i]等于1的颓柿子发现是(n+1)/2
n = 2 分开讨论a[2]是否全部选完
n = 2 部分分已经是提醒了 可以对每个a[i] 分开考虑,然后dp做就可以了
D:C
暴力直接用Lca跳就可以了
(a_i<=1)的情况发现只有距离是奇数并且权值是1的时候才会算重 所以把这个减去就好了
然后就可以用前缀和预处理一下
把每个点到根节点满足这样的特殊点的个数处理出来 然后每次差分一下就好了
正解不太会……