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

懒更新|单点查询

lc1636

带懒标记的区间加法、乘法、单点查询的实现

全局 add、mul 懒标记代替逐个修改元素,append 时用费马小定理求逆元还原原值

查询时 O(1) 计算真实值

时间复杂度全操作 O(logMOD)

class Fancy {
static constexpr int MOD = 1'000'000'007;

vector<int> vals;
long long add = 0;
long long mul = 1;

long long pow(long long x, int n) {
long long res = 1;
for (; n; n /= 2) {
if (n % 2) {
res = res * x % MOD;
}
x = x * x % MOD;
}
return res;
}

public:
void append(int val) {
// 注意这里有减法,计算结果可能是负数,+MOD 可以保证计算结果非负
vals.push_back((val - add + MOD) * pow(mul, MOD - 2) % MOD);
}

void addAll(int inc) {
add = (add + inc) % MOD;
}

void multAll(int m) {
mul = mul * m % MOD;
add = add * m % MOD;
}

int getIndex(int idx) {
if (idx >= vals.size()) {
return -1;
}
return (vals[idx] * mul + add) % MOD;
}
};

http://www.jsqmd.com/news/482519/

相关文章:

  • Windows下安装Claude Code,使用API Key方式调GLM
  • uvicorn,一个无敌的 Python 库!
  • CRUD思维:开发者的通用问题解决锚点
  • d3地图
  • 搭建私有 Matrix 聊天服务器 - yi
  • ezrop
  • 《PCRDiffusion: Diffusion Probabilistic Models for Point Cloud Registration》论文
  • 量化交易系列(八):OKX 搞了个 AI Trade Agent,是普通人的机会还是手续费收割机?
  • 实现DevOps需要的工具
  • Python 搭建 FastAPI 项目
  • 网络自动化学习-基于H3C模拟器的Netconf基础准备与练习
  • 宁夏中宁玺赞枸杞实测:红柳沟庄园好枸杞,闭眼入不踩坑! - 宁夏壹山网络
  • 深入研究大数据领域的数据清洗算法与模型
  • 总要有个地方能够存放当前的自我
  • 操作系统引论
  • 小马智行Robotaxi接入腾讯出行,联手腾讯未来何在?
  • Stack pivot (leave_ret详解)
  • 京东自营家装来了,用AI进军家装未来何在?
  • P8635 [蓝桥杯 2016 省 AB] 四平方和【枚举+打表】
  • P8636 [蓝桥杯 2016 省 AB] 最大比例【GCD】
  • Go Viper
  • 鸽姆智库全球AI大模型14项核心弊端全维度诊断与根治性解决方案总报告
  • 量化交易系列(七):为什么所有公开的量化策略,都赚不了钱?
  • 【YOLO26实战全攻略】09——YOLO26多目标跟踪实战宝典:从原理到智慧园区人流统计全流程
  • Go Gorm
  • 拒绝 500 与 404:Spring Boot 全局异常处理机制深度解析与常见 API 错误避坑指南
  • 大模型的“大脑”是如何构造的?深度拆解语义建模的三种典型架构
  • 从参数校验失败到序列化陷阱:构建健壮 Spring Boot RESTful API 的十大高频错误复盘
  • 玩转二叉树
  • Thinkphp和Laravel框架都支持 博物馆文物科普知识普及系统微信小程序-