首页 > 其他 > 详细

csp-s模拟测试52

时间:2019-09-27 18:09:10      阅读:66      评论:0      收藏:0      [点我收藏+]

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

 

期望得分: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)。

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

 

csp-s模拟测试52

原文:https://www.cnblogs.com/hzoi-yzh/p/11599495.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!