CSP 模拟32

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的时候才会算重 所以把这个减去就好了
然后就可以用前缀和预处理一下
把每个点到根节点满足这样的特殊点的个数处理出来 然后每次差分一下就好了
正解不太会……

posted @ 2020-11-11 18:09  HISKrrr  阅读(84)  评论(0编辑  收藏  举报