尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

题解:P13979 数列分块入门 4

题解:P13979 数列分块入门 4
📅 发布时间:2026/6/19 16:35:34

区间加法和区间询问,很明显是用线段树啦!

线段树通过懒标记实现了 $log$ 的时间复杂度,保证了在 $3e5$ 范围内不会超时。这道题重点是输出是非负的余数,所以要这样输出:

cout << (query(1, x, y) % (k + 1) + (k + 1)) % (k + 1) << "\n";

而不是:

cout << abs(query(1, x, y) % (k + 1)) << "\n";

代码如下:

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 3e5 + 5;
struct node {int l, r, sum, tag;
}tr[N << 2];
int n, m, op, x, y, k, a[N];
inline void updata(int p){tr[p].sum = tr[p << 1].sum + tr[p << 1 | 1].sum;
}
inline void downdata(int p){int mid = (tr[p].l + tr[p].r) >> 1;if(!tr[p].tag) return ;tr[p << 1].sum += (mid - tr[p].l + 1) * tr[p].tag;tr[p << 1].tag += tr[p].tag;tr[p << 1 | 1].sum += (tr[p].r - mid) * tr[p].tag;tr[p << 1 | 1].tag += tr[p].tag;tr[p].tag = 0;
}
inline void build(int p, int l, int r){tr[p].l = l, tr[p].r = r;if(l == r){tr[p].sum = a[r];return ;}int mid = (l + r) >> 1;build(p << 1, l, mid);build(p << 1 | 1, mid + 1, r);updata(p);
}
inline void add(int p, int l, int r, int v){if(tr[p].l >= l && tr[p].r <= r){tr[p].sum += (tr[p].r - tr[p].l + 1) * v;tr[p].tag += v;return ;}downdata(p);int mid = (tr[p].l + tr[p].r) >> 1;if(l <= mid) add(p << 1, l, r, v);if(r > mid) add(p << 1 | 1, l, r, v);updata(p);
}
inline int query(int p, int l, int r){if(tr[p].l >= l && tr[p].r <= r) return tr[p].sum;downdata(p);int mid = (tr[p].l + tr[p].r) >> 1;int cnt = 0;if(l <= mid) cnt += query(p << 1, l, r);if(r > mid) cnt += query(p << 1 | 1, l, r);return cnt;
}
signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin >> n;int m = n;for(int i = 1; i <= n; i++) cin >> a[i];build(1, 1, n);while(m--){cin >> op >> x >> y >> k;if(!op) add(1, x, y, k);else cout << (query(1, x, y) % (k + 1) + (k + 1)) % (k + 1) << "\n";}return 0;
}

管理大大求过!

相关新闻

  • YOLO + OpenPLC + ARMxy:工业智能化视觉识别、边缘计算、工业控制的“三位一体”解决方案
  • NKOJ全TJ计划——NP4582
  • VibeCoding On Function AI Deep Dive:用 AI 应用生产 AI 应用

最新新闻

  • CTF密码学实战:Python AES加解密核心原理与攻击技巧
  • 2026 南宁钻石回收最新行情,克拉钻裸钻实时报价参考 - 讯息早知道
  • 北京东城区黄金回收指南:收的顶专业机构VS银行VS金店怎么选? - 奢侈品回收测评
  • 2026西安黄金行情解析|高位变现时机与门店测评 - 奢侈品回收测评
  • 旧饰焕新颜,财富再启航。广州首饰回收传递生活新希望 - 奢品小当家
  • 2026武汉黄金回收TOP5优质商家推荐【6月最新版】设备硬核资金足报价高变现无忧 - 名奢变现站

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号