摘要:
题目链接 操作一就是很简单的单点修改。操作二求最大子段和是本题的重点。 最大子段和可能分布在这个节点的左儿子的最大子段和,要么是右儿子的最大子段和,要么是横跨两部分(左儿子的后缀加右儿子的前缀)。而当前节点的最大前缀是$\max {pre[ls], sum[ls] + pre[rs]}$,最大后缀是 阅读全文
posted @ 2022-05-01 23:30
浅渊
阅读(57)
评论(0)
推荐(0)
摘要:
题目链接 因为我们对区间进行异或的操作,如果我们考虑一个一个暴力的异或过去那肯定是会超时的。那么我就可以将二进制拆位,我们可以发现它的数据范围最大的是$10^{6}$也就是$2^{19}$次方左右的,我们可以把这每一位的二进制分别用一个线段树存下来,这样的话区间的异或操作就可以转化成所有数每一位的区 阅读全文
posted @ 2022-05-01 17:44
浅渊
阅读(33)
评论(0)
推荐(0)
摘要:
题目链接 如果只是进行操作一的话,那就是很简单的操作每一次直接乘就好了,但是我们还要进行操作二:要把前某几次乘的数除掉,所以我们就需要把每一次乘的数都存储下来,且是按顺序的。我们可以想到用一个数组或者是$vector$来顺序存储。但是我们会发现,这样的话我们每一次输出的时候就需要把所有的数都乘起来那 阅读全文
posted @ 2022-05-01 00:24
浅渊
阅读(61)
评论(0)
推荐(0)

浙公网安备 33010602011771号