程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了快乐的一天从AC开始 | 20210630 | P5268大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

题目链接

AC代码

首先,题目给出的式子中(X)的范围可以缩小到([1, n])

然后这个式子是4元的,感觉很不好写。注意到范围再2D平面中是个矩形,试着搞下矩形容斥,即把一个询问拆成4个询问,拆分后的询问只有2元。具体如下:

[begin{aligneD} operatorname{Ans} &= Q_1 - Q_2 - Q_3 + Q_4\ Q_1 &= sum_{x = 1}^{n} get(1, r_1, X) times get(1, r_2, X)\ Q_2 &= sum_{x = 1}^{n} get(1, l_1 - 1, X) times get(1, r_2, X)\ Q_3 &= sum_{x = 1}^{n} get(1, r_1, X) times get(1, l_2 - 1, X)\ Q_4 &= sum_{x = 1}^{n} get(1, l_1 - 1, X) times get(1, l_2 - 1, X)\ end{aligneD} ]

现在就可以直接莫队搞。

注意:我写代码的时候偷懒直接抠莫队板子了,结果一直跑不过样例。其实这题和一般莫队不一样。一般莫队维护的是一个区间([l, r]),而这一题莫队维护的是两个区间([1, l])([1, r])。对于添加和删除操作,一般莫队操作左端点和右端点的逻辑是相反的,而这题是一致的

大佬总结

以上是大佬教程为你收集整理的快乐的一天从AC开始 | 20210630 | P5268全部内容,希望文章能够帮你解决快乐的一天从AC开始 | 20210630 | P5268所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:php程序员