#include<bits/stdc++.h>
#define mst(a, b) memset(a, b, sizeof(a))
#define ls(k) (k<<1)
#define rs(k) (k<<1|1)
using namespace std;
struct tree {
int l, r;
long long sum;
long long add;
}dt[2000001];
inline void bul(int l, int r, int k) {
dt[k].l = l;
dt[k].r = r;
dt[k].add = 0;
if(l == r) {
int t;
scanf("%d", &t);
dt[k].sum = t;
return;
}
int mid = (dt[k].l+dt[k].r) >> 1;
bul(l, mid, ls(k));
bul(mid+1, r, rs(k));
dt[k].sum = dt[ls(k)].sum+dt[rs(k)].sum;
}
inline void pushdown(int k) {
if(dt[k].add == 0) return;
dt[ls(k)].add+= dt[k].add;
dt[rs(k)].add+= dt[k].add;
dt[ls(k)].sum+= ((long long)(dt[ls(k)].r-dt[ls(k)].l+1))*dt[k].add;
dt[rs(k)].sum+= ((long long)(dt[rs(k)].r-dt[rs(k)].l+1))*dt[k].add;
dt[k].add = 0;
}
inline long long query(int l, int r, int k) {
if(dt[k].l>= l&&dt[k].r<= r) {
return dt[k].sum;
}
long long mid = (dt[k].l+dt[k].r) >> 1;
pushdown(k);
if(mid>= r) {
return query(l, r, ls(k));
} else if(mid<l) {
return query(l, r, rs(k));
} else {
return query(l, mid, ls(k))+query(mid+1, r, rs(k));
}
}
inline void updatelen(long long l, long long r, long long val, int k) {
tree &ans = dt[k];
if(ans.l == l&&ans.r == r) {
ans.add+= val;
ans.sum+= (r-l+1)*val;
return;
}
long long mid = (ans.l+ans.r) >> 1;
pushdown(k);
if(mid>= r) {
updatelen(l, r, val, ls(k));
} else if(mid<l) {
updatelen(l, r, val, rs(k));
} else {
updatelen(l, mid, val, ls(k));
updatelen(mid+1, r, val, rs(k));
}
dt[k].sum = dt[ls(k)].sum+dt[rs(k)].sum;
}
int main()
{
int n, m;
cin >> n >> m;
bul(1, n, 1);
int M = m;
while(M--) {
char flag;
cin >> flag;
if(flag == 'C') {
int x, y, k;
scanf("%d %d %d", &x, &y, &k);
updatelen(x, y, k, 1);
} else {
long long x, y;
scanf("%lld %lld", &x, &y);
printf("%lld\n", query(x, y, 1));
}
}
return 0;
}
相关推荐
大麦APP抢票协议分析:从‘掌密网络’代码看移动端API安全防护
本文深度解析了大麦APP抢票协议的安全防护体系,重点分析了'掌密网络'代码中体现的动态签名、设备指纹和人机验证等关键技术。文章详细介绍了大麦APP如何通过多层次API安全防护应对抢票压力,包括参数加密、请求头部设计和异常处理机制,为移动应用开发者提供了安全实践建议。
线段树简单板子+介绍
这就是经典的二分了,查询这个区间是在哪个结点处,如果这个区间能把当前结点对应的区间包含住,那么我们直接返回这个结点的值就可以了。而第三种情况就是,当你的目标区间和结点区间完全没有交集的时候,我们直接返回0就可以了。“ 这个区间的最大值,取决于 这个区间左半边的最大值,和区间右半边的最大值 ”一个区间的最大值,取决于 这个区间左半边的最大值,和区间右半边的最大值。当结点区间的左端点为目标区间的左端点的时候(结点区间的右端点是绿色处)给你一段区间,然后给你 q次询问,每次询问让你输出这个区间的最大值。
VNC Viewer建立多个图形界面,来远程访问同一个服务器(Ubuntu)
如题。目前已经有了一个VNC viewer连接,那么如果再开一个图形界面呢? 思路主要是:新建一个用户,从这个用户新建一个vnc连接,然后访问图形界面。
线段树板子整理
线段树 参考大神的博客写的: 大神详解(写的真的很好) tree[i].l和tree[i].r分别表示这个点代表的线段的左右下标,tree[i].sum表示这个节点表示的线段和。 一颗二叉树,她的左儿子和右儿子编号分别是她*2和她*2+1, 建树 inline void build(int i,int l,int r){//递归建树 tree[i].l=l;tree[i].r=r; if(l==r){//如果这个节点是叶子节点 tree[i].sum=input[l];
DC/DC恒压输出控制原理与应用
DC/DC恒压输出控制
Python实现微信PC端聊天记录自动化监听与智能回复
本文详细介绍了如何使用Python实现微信PC端聊天记录的自动化监听与智能回复。通过win32api和uiautomation库,模拟人工操作,实时监控聊天窗口并抓取新消息。文章重点讲解了核心代码逻辑、环境搭建步骤,并提供了实现关键词触发自动回复的完整方案,旨在提高工作效率与信息管理自动化水平。
线段树板子汇总
想做这个事情已经比较久啦,代码能力非常需要保持,把各个板子都重新打一遍,汇总一下,方便之后做比赛自己的常用板子。 点修改,区间求和 CodeVS 1080 #include <bits/stdc++.h> const int maxn = 1e5+100; using namespace std; int a[maxn]; struct SegmentTree{ int l,r; ...
应急响应靶场练习Linux-web-2
本次应急响应靶机采用的是知攻善防实验室的Linux-2应急响应靶机靶机下载地址为:相关账户密码: root/Inch@957821.(第一个为大写的i,记住要带最后的点.)1.该攻击者的IP为192.168.20.12.攻击方式应该是通过/index.php?user-app-register上传了一个webshell,然后使用蚁剑管理webshell之后再次上传version2.php进行提权.3.攻击者修改了phpmyadmin数据库的管理员密码。
线段树是一定要会线段树的 。线段树的精髓 ——板子+作用+详细注释+内容
一:为什么需要线段树? 题目1: 10000个正整数,编号从1到10000,用A[1],A[2],A[10000]表示。 修改:1.将第L个数增加C (1 <= L <= 10000) 统计:1.编号从L到R的所有数之和为多少? 其中1<= L <= R <= 10000. 上面的问题就是典型的线段树点修改。 线段树先将区间[1..10000]分成不超过4*10...
深度伪造检测实战:轻量级频域特征 pipeline 部署指南
深度伪造检测(deepfake detection)是多媒体内容安全的核心技术,其本质是通过建模生成式篡改在像素与频域留下的微弱异常痕迹。传统端到端大模型虽在标准数据集上表现优异,却因训练域与真实场景失配、计算开销高、缺乏可解释性而难以落地。本文聚焦于工程可复现的实践路径,提出‘人脸定位→频域伪造特征提取(Xception-FCN + Frequency-Aware Masking)→轻量分类决策’三段式解耦架构,兼顾精度、延迟与可解释性。该方案已在边缘设备(Jetson Orin NX)实现单帧<48ms
uniapp [全端兼容] - 详细实现全局修改设置字体大小功能效果,统一修改页面字号字体大小,一键改变字号整个项目立即生效,大中小字号预设、老年人大字模式场景,uniApp全平台兼容控制页面字号大小
uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,修改字体大小,一键调整UniApp字体大小,实时改变不用刷新,动态设置字体大小,uniapp全局修改字体字号大小,如何控制全局字号,可调整显示的字体,全项目生效,老年人大字模式,改变所有页面的字体,全局设置字体大小,实现小中大的字体切换,设置改变全局字体大小功能,如何做到全平台兼容,H5APP实现全局字体大小调整,不兼容报错,用户设置字号,全局设置应用字体大小,大中小字体修改,页面设置page-me
【模板】线段树板子
【洛谷日报#209】线段树分治总结 线段树分治是用线段树的分治性维护时间区间,它可以支持撤销操作、或者说维护了一个操作影响的时间区间 那些年我用线段树做过的题目: 查区间第k小 求区间最大值、和 给一段区间的数×k\times k×k、给一段区间的数+k+k+k - P2023 [AHOI2009]维护序列 · 线段树 统计区间内不同的数的个数 - P1972 [SDOI2009]HH的项链·...
【SpringBoot 4.x 第70节】夯爆了,企业级 API 设计规范落地:状态码、错误码、接口文档与兼容性(超详解)!
🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。
线段树普通板子(过几天补具体讲解)
讲解还是比较麻烦的,后续会补充,可以先关注一下。
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
线段树基础板子
线段树最基础板子题 B - Multiply game Tired of playing computer games, alpc23 is planning to play a game on numbers. Because plus and subtraction is too easy for this gay, he wants to do some multiplication in a number sequence. After playing it a few times, he has
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
树状数组/线段树/动态开点线段树(板子整理)
树状数组/线段树/动态开点线段树(板子整理)
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
线段树 递归 板子
题目:HDU 1166 #include <iostream> #include<cstring> #define max 100007 #define ls l,m,rt<<1 #define rs m+1,r,rt<<1|1 using namespace std; int Sum[max<<2]; int Add[max&l...
线段树1板子 区间加
类的构造函数写在类最后了,本板子没有将左右下标封装到节点中,而是实时计算的。
线段树基础板子题
在选拔赛补题时被线段树虐哭,然后一直想学线段树又一直学不下去,这次再来学一学吧!希望线段树别再虐孩子了。 1.敌兵布阵 HDU - 1166 int t,n,a[50010],tree[50005*4];//tree要开a的4倍 char s[10]; //建树 void build(int node,int l,int r) { if(l==r) { tree[node]=a[l]; return; } int mid=(l+r)/2;
292



被折叠的 条评论
为什么被折叠?



