当前位置: 首页 > news >正文

CF266E More Queries to Array... Solution

Description

给定序列 a=(a1,a2,⋯,an)a=(a_1,a_2,\cdots,a_n)a=(a1,a2,,an),执行 qqq 次操作分两种:

  • = l r x:对每个 l≤i≤rl\le i\le rlir 执行 ai←xa_i\gets xaix.
  • ? l r k:求 (∑i=lrai×(i−l+1)k)mod(109+7)(\sum\limits_{i=l}^r a_i\times (i-l+1)^k)\bmod (10^9+7)(i=lrai×(il+1)k)mod(109+7).

Limitations

1≤n,q≤1051\le n,q\le 10^51n,q105
1≤l≤r≤n1\le l\le r\le n1lrn
0≤ai,x≤1090\le a_i,x\le 10^90ai,x109
0≤k≤50\le k\le 50k5
5s,256MB5\text{s},256\text{MB}5s,256MB

Solution

直接维护答案式子是不大现实的.

考虑拆开,由二项式定理得:
原式=∑i=lrai×(∑j=0k(kj)×(i+1)j×(−l)k−j)=∑j=0k(kj)×(−l)k−j×(∑i=lrai×(i+1)j)\begin{aligned} \text{原式}&=\sum_{i=l}^r a_i \times (\sum_{j=0}^k\binom{k}{j}\times (i+1)^j\times(-l)^{k-j})\\ &=\sum_{j=0}^k\binom{k}{j}\times(-l)^{k-j}\times (\sum_{i=l}^r a_i \times (i+1)^j) \end{aligned} 原式=i=lrai×(j=0k(jk)×(i+1)j×(l)kj)=j=0k(jk)×(l)kj×(i=lrai×(i+1)j)

预处理 (kj)\binom{k}{j}(jk),线段树维护 S=∑i=lrai×(i+1)jS=\sum\limits_{i=l}^r a_i \times (i+1)^jS=i=lrai×(i+1)j 即可,剩下的查询时暴算.
时间复杂度 O(kqlog⁡n)O(kq\log n)O(kqlogn).

Submisson

http://www.dtcms.com/a/340091.html

相关文章:

  • GPFS不同存储方式的优劣
  • 2943. 最大化网格图中正方形空洞的面积
  • Manus AI 与多语言手写识别技术深度剖析
  • 不同的 Text2sql 方式优缺点探究
  • 智慧校园中IPTV融合对讲:构建高效沟通新生态
  • Unity常用工具及默认快捷键
  • PowerBI登录出错解决过程
  • YOLO多模态改进系列 | YOLOFuse:多模态融合的 Slim-Neck 改进
  • java面试——多线程
  • C++高频知识点(二十九)
  • HarmonyOS 中的 泛型类和泛型接口
  • 51单片机拼接板(开发板积木)
  • 爬小红书搜索详情软件:根据关键词采集笔记详情,包含正文内容、发布时间、转评赞藏等
  • C++开发基础之:队列用法与生产者消费者模型实战和可直接复用的线程安全的队列
  • 疏老师-python训练营-Day50预训练模型+CBAM注意力
  • 会话技术之<Cookie>和<Session>的区别联系
  • “数据权限”的道和术
  • 从 SGD 到梯度累积:Epoch、Batch、Step 的关系全解析
  • 使用redis读写锁实现抢券功能
  • Hive 存储管理测试用例设计指南
  • 力扣(最小栈)
  • Android逆向工程:Smali语法解析完整指南
  • [ Maven 开发工具 ] 环境搭建及配置
  • DRM驱动架构浅析-上(DRM基础概要与U-Boot阶段驱动解析)
  • 基于 OpenMV 的矩形识别与 STM32 串口通信(电子设计大赛实用教程)
  • k8s运维实践:高可用Redis Cluster(三主三从)与Proxy部署方案
  • 使用 Docker 安装长安链管理平台 + 部署区块链与示例合约
  • daily notes[3]
  • Eigen中Dense 模块简要介绍和实战应用示例(最小二乘拟合直线、协方差矩阵计算和稀疏求解等)
  • 三极管驱动led灯搭配的电阻选取方法