UOJ Logo huangxuan的博客

博客

标签

线段树

2023-01-07 16:20:42 By huangxuan
#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));
        }
    }
}

新博客

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

火箭

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 篇博客