zoukankan      html  css  js  c++  java
  • 快乐的一天从AC开始 | 20210630 | P5268

    题目链接

    AC代码

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

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

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

    现在就可以直接莫队搞。

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

  • 相关阅读:
    3秒后页面跳转代码
    数据库 ""和null的在java 持久化中的区别
    去掉标签元素
    hibernate 自动封装
    hql 多对多查询
    javascript 数组
    spring mvc+mybatis整合
    collection映射
    mybatis中one2many
    mybatis中many2one
  • 原文地址:https://www.cnblogs.com/zengzk/p/14953761.html
Copyright © 2011-2022 走看看