#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+5;
struct node{
int l,r;
long long lazy;
long long val;
};
node tree[N<<2];
int n,a[N];
int q;
void spread(int p,long long tag){
int lt=tree[p].l;
int rt=tree[p].r;
tree[p].val+=tag*(rt-lt+1);
tree[p].lazy+=tag;
}
void push_down(int p){
long long tag=tree[p].lazy;
if(!tag) return ;
spread(p<<1,tag);
spread(p<<1|1,tag);
tree[p].lazy=0;
}
void push_up(int p){
tree[p].val=tree[p<<1].val+tree[p<<1|1].val;
}
void build(int p, int L, int R){
tree[p].l=L , tree[p].r=R;
if(L==R){
tree[p].val=a[L];
return ;
}
int mid =(L+R)>>1;
build(p<<1,L,mid);
build(p<<1|1,mid+1,R);
push_up(p);
}
long long query(int p,int L,int R){
int lt=tree[p].l , rt=tree[p].r;
if(L<=lt && rt<=R)
return tree[p].val;
long long sum=0;
push_down(p);
int mid=(lt+rt)>>1;
if(mid>=L)
sum+=query(p<<1,L,R);
if(mid<R)
sum+=query(p<<1|1,L,R);
return sum;
}
void change(int p,int L,int R,int x){
int lt=tree[p].l , rt=tree[p].r;
if(L<=lt && rt<=R){
spread(p,x);
return ;
}
push_down(p);
int mid=(lt+rt)>>1;
if(mid>=L)
change(p<<1,L,R,x);
if(R>mid)
change(p<<1|1,L,R,x);
push_up(p);
}
int main(){
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
build(1,1,n);
while(q--){
int ch;
scanf("%d",&ch);
if(ch==1){
int fr,st,x;
scanf("%d%d%d",&fr,&st,&x);
change(1,fr,st,x);
}
else{
int fr,st;
scanf("%d%d",&fr,&st);
printf("%lld\n",query(1,fr,st));
}
}
}
线段树
2023-01-07 16:20:42 By huangxuan
新博客
2022-08-15 10:06:18 By huangxuan
新博客
2022-06-15 17:47:34 By huangxuan
ubc26.github.io
新博客
2022-06-12 16:31:53 By huangxuan
42页嗨嗨嗨
2022-05-27 20:21:07 By huangxuan
洛谷团队
2022-04-06 18:14:20 By huangxuan
YXY的洛谷团队 记得备注中文姓名
火箭
2022-03-27 15:22:58 By huangxuan
( )
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
------------| |------------
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
----------------------------------------------
有道翻译穿山甲
2022-03-23 18:15:12 By huangxuan
老峰:(突然生病了)哈哈哈!鸡汤!
老峰:(环顾四周)这里,这里,盘子在这里。你为什么不吃?
王队长:老峰,不是谁都敢吃东西。据说有人在那里下了毒。
冯:喂,小王!王船长,你喜欢开玩笑。作为热。我不会打扰你的。我要走了。
薛指挥官:我们不能离开。
老峰:(回头笑)薛船长,你不相信王船长的话,是吗?
薛少佐:是的。我相信。
老峰:少校,怎么了?你在开什么玩笑呢(害羞地笑)。
薛指挥官:如果你没有在汤里下毒,你早就吃了。
老峰,少校这鸡真贵。同志们要先喝酒。我是厨师。我不能喝这碗鸡汤。
索尔指挥官:看看你有多努力,一碗鸡是什么?如果你不喝酒,那就意味着中 毒了。 老峰:那不是。今天是谁坑了我?王船长,你拖住我了。
冯:好的,我开动了,开动了!(颤抖着端起茶碗)想,想。
老峰:啊,汤真好喝。
老峰:不咸也不淡。真的很好吃。
老峰:指挥官,你看),没问题。喝了。我喝热饮。
老峰:指挥官,你必须身先士卒。如果你不开车,他们怎么能喝酒呢?
老峰:啊,都,你看我干什么去了?喝!走吧。我喝热饮。我喝热饮。
冯:你怎么不喝酒?!喝!喝!没有!没有!没有!(
风:不,不,我要把你吹走!我不会喝酒。吓死了,是吗?我不告诉你,酒,不是酒,是不活!
老峰:现在大家都知道了,我不玩了。我是著名的重庆和大日军双重高级特工。代号(酸洗)穿山甲!
老峰:我把小贤放进去了,我是把鸡汤里的毒药放进去了。我如果吃了蓼鸡汤,一定会死。如果不是的话,你就永远活不下去了!
风是团队的m先生,陛下是……最后!我的任务完成了!
老照片:(突然出现)哈哈哈哈!
(发现手榴弹是炸弹)
老峰:奶奶给了我一个粗糙的东西!直接!
有道翻译杰哥
2022-03-20 17:37:32 By huangxuan
嘿,弱者,拜托,你是弱者,现在你知道谁是老大了哦,哈!
小薇,你又在玩电子游戏了。你为什么不休息一下,读本书呢?
麻烦。
你听到我跟你说话了吗?
别烦!
我只有两个字要对你说,你让我厌烦了,我只想让你好好学习,不要再看到你整天在这里玩电子游戏!
他死了!你这样做!来吧!
哦,看这个。喝了几杯啤酒就喝醉了太糟糕了。
这个垃圾桶真乱!
你听起来很勇敢,不是吗?
你在开玩笑吧?我是勇敢的。我酒量不错。
你知道怎么喝酒。你很勇敢。美丽的图片。非常强大。
杰,你在干什么?
你多大了?你太害羞!我看着你,我不明白!
是的,你知道吗?
你想知道吗?我房间里有些不错的。
嘿,康,这是个新游戏!
新游戏是什么?这更令人兴奋!
我甚至可以教你。——Dovalon !
邓dua朗?
嘿,又来了。让我们开始吧。在这里,我们走吧!
哦,杰克,酒!
嘿,杰,你有这么多黄片!
哦,那没什么。来,看看这个。好吧,就在这儿!
杰克,这是什么?
哎哟,你脸红了!来,让我看看。
不!!
让我看看。
不,杰克!你在干什么?!
让我看看你的法语!
杰克:不!
听话,让我康康!!!
不!
杰克不,杰克不,杰克不,杰克不,杰克不…
这将是我们之间的秘密。
你最好别告诉任何人!我知道你在哪个学校,哪个班!
你最好记住这点,好吗?!
连点器(Plus)(按了空格按了ESC后还可以继续,结束就关闭黑框框)
2022-01-23 11:55:55 By huangxuan
#include<stdio.h>
#include<windows.h>//头文件
int main()
{
hg:
{
while(1)
{
if(GetAsyncKeyState(VK_SPACE))//按下空格,开始执行
{
while(1)
{
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);//当前位置点击一次鼠标
Sleep(10);//每0.1秒点击一次
if(GetAsyncKeyState(VK_ESCAPE)) goto hg; //按esc退出
}
}
}
}
}
共 15 篇博客