• csp-s模拟测试52


    标签:平均数处理 查单点上的区间操作

    期望得分:40+40+40

    实际得分:40+40+40

    打了三个暴力

    A. 平均数

    查询第k小的连续子序列平均值。

    二分,很妙

    二分平均值x,所有数减去x,做前缀和,平均值比x小的区间[l,r]有$sum_r-sum_{l-1} < 0$,sum的逆序对数即是x在所有区间里的排名。

    由于实数域,归并排序比较方便。

    注意到平均值有相同的,即x增大一点,逆序对数可能增加很多,卡不到k-1,不能判等,找到逆序对数<k的最大x就是答案。

    B. 涂色游戏

    类似长寿花的思想,这种题还是不会做啊。

    先dp出子问题的答案(一列或一层之类),然后用组合数+dp拓展到整体(面,立体)

    不用记录具体的颜色集合,相同颜色数的所有颜色集合答案相同,按颜色数dp

    相邻两列有限制(集合不能相同,集合的并>q),用相邻两个集合的并或交来分类

    转移式子可以矩阵快速幂,log掉m。

    C. 序列

    40%:把区间查询下发到每个点,做前缀和,暴力求出第一次答案,之后每次考虑单点的修改之于所有查询的增量。

    瓶颈在于求初始答案和下发操作。

    100%:可以不把查询拍到每个点上,考虑线段树,拍到区间节点上,知一个查询最多会放到2logn个节点上,空间复杂度O(2mlogn)。

    之后单点查询累计路径上的查询答案即可。

  • 相关阅读:
    进程同步&&进程互斥
    CHAP4 字符串和格式化输入输出
    记录学习到的内容
    数据链路层 差错控制
    二叉树的顺序存储
    Java复习笔记
    Stream流
    函数式接口
    网络编程
    接口,多态,抽象类总结
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/11599495.html
Copyright © 2020-2023  润新知