青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C小加

厚德 博學 求真 至善 The bright moon and breeze
posts - 145, comments - 195, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
區間更新,區間求和。C的時候在區間[a,b]之間,每個元素增加一個c。Q的時候求出[a,b]區間元素的和。
思路:線段樹。增加一個增量屬性add,更新到范圍內的時候刷新add和value的值,這個時候不再向下傳遞,如果需要向下更新或者向下詢問的時候,更新節點兩個子樹的add和value屬性,這樣需要用的到時候再更新會提高效率。


#include
<iostream>
#include
<cstdio>
#include
<cstring>
using namespace std;
const int MAXN=100003;
long long sum;
inline 
int L(int r){return r<<1;}
inline 
int R(int r){return (r<<1)+1;}
inline 
int MID(int l,int r){return (l+r)>>1;}
typedef 
struct
{
    
int left,right;
    
long long value,add;
}node;
node tree[MAXN
*4];
long long arr[MAXN];
void Update(int);
void Create(int l,int r,int root)
{
    tree[root].left
=l;
    tree[root].right
=r;
    tree[root].add
=0;
    
if(l==r) {tree[root].value=arr[l];return;}
    
int mid =MID(l,r);
    Create(l,mid,L(root));
    Create(mid
+1,r,R(root));
    tree[root].value
=tree[L(root)].value+tree[R(root)].value;
}
void Add(int l,int r,long long v,int root)
{
    
if(l<=tree[root].left&&tree[root].right<=r)
    {
        tree[root].add
+=v;
        tree[root].value
+=v*(tree[root].right-tree[root].left+1);
        
return;
    }
    Update(root);
    
if(tree[root].left==tree[root].right) {return;}
    
int mid=MID(tree[root].left,tree[root].right);
    
if(l>mid) Add(l,r,v,R(root));
    
else if(r<=mid) Add(l,r,v,L(root));
    
else
    {
        Add(l,mid,v,L(root));
        Add(mid
+1,r,v,R(root));
    }
    tree[root].value
=tree[L(root)].value+tree[R(root)].value;

}
void Update(int node)//更新節點,把大區間的增值傳給小區間,給小區間的值加上增量
{
    
if(tree[node].add)
    {
        tree[L(node)].add
+=tree[node].add;//更新子樹時會用到
        tree[R(node)].add+=tree[node].add;
        tree[L(node)].value
+=(tree[L(node)].right-tree[L(node)].left+1)*tree[node].add;//這時候的值就是區間和
        tree[R(node)].value+=(tree[R(node)].right-tree[R(node)].left+1)*tree[node].add;
        tree[node].add
=0;
    }
}

void Solve(int l,int r,int root)
{
    
if(l<=tree[root].left&&tree[root].right<=r)
    {
            sum
+=tree[root].value;
            
return;

    }
    Update(root);

    
if(tree[root].left==tree[root].right) return;
    
int mid=MID(tree[root].left,tree[root].right);
    
if(l>mid) Solve(l,r,R(root));
    
else if(r<=mid) Solve(l,r,L(root));
    
else
    {
        Solve(l,mid,L(root));
        Solve(mid
+1,r,R(root));
    }

}

int main()
{
    
//freopen("input","r",stdin);
    int m,n;
    
while(scanf("%d %d",&m,&n)!=EOF)
    {
        
for(int i=1;i<=m;i++)
        {
            scanf(
"%lld",arr+i);
        }
        Create(
1,m,1);
        
char c[2];
        
while(n--)
        {
            scanf(
"%s",c);
            
if('C'==c[0])
            {
                
int l,f;
                
long long v;
                scanf(
"%d %d %lld",&l,&f,&v);
                Add(l,f,v,
1);
            }
            
else
            {
                
int l,f;
                scanf(
"%d %d",&l,&f);
                sum
=0;
                Solve(l,f,
1);
                printf(
"%lld\n",sum);
            }
        }
    }



    
return 0;
}
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产主播一区| 正在播放欧美视频| 美女日韩欧美| 亚洲人人精品| 日韩图片一区| 国产美女精品免费电影| 国内精品免费在线观看| 久久综合久久综合这里只有精品| 欧美一区二区啪啪| 一区视频在线播放| 亚洲精品男同| 99视频精品| 国产偷国产偷亚洲高清97cao| 久久久综合视频| 毛片基地黄久久久久久天堂| 一本大道久久a久久综合婷婷| 一本一道久久综合狠狠老精东影业| 国产精品乱人伦一区二区| 久久在线免费| 欧美午夜理伦三级在线观看| 久久久久久久91| 欧美另类一区| 久久久久久久久久看片| 欧美日韩成人综合在线一区二区 | 国产精品一区二区男女羞羞无遮挡| 久久国产精彩视频| 欧美激情一二三区| 久久久久一区二区三区| 欧美日韩精选| 欧美成人一区二区在线| 国产精品自拍一区| 亚洲电影下载| 激情欧美一区二区三区| 宅男66日本亚洲欧美视频| 好看不卡的中文字幕| 一区二区三区欧美日韩| 亚洲国产精品一区二区第一页| 亚洲影视九九影院在线观看| 一区二区三区毛片| 欧美天堂亚洲电影院在线观看| 亚洲国产精品va在线看黑人动漫| 欧美黑人多人双交| 久久国产精品99精品国产| 欧美日韩视频在线第一区| 欧美成人精精品一区二区频| 国产精品丝袜久久久久久app| 亚洲国产日韩综合一区| 狠狠爱成人网| 午夜久久美女| 欧美一区二区视频97| 欧美视频在线观看一区二区| 亚洲国产aⅴ天堂久久| 亚洲电影免费观看高清完整版在线| 午夜综合激情| 欧美伊人久久大香线蕉综合69| 欧美午夜精品| 亚洲精品一区在线观看| 亚洲毛片一区二区| 欧美成人一品| 亚洲欧洲精品一区二区| 亚洲国产色一区| 欧美成ee人免费视频| 欧美福利在线观看| 亚洲激情综合| 欧美精品综合| 91久久国产自产拍夜夜嗨| 91久久香蕉国产日韩欧美9色| 乱中年女人伦av一区二区| 欧美91精品| 亚洲精品欧洲| 欧美另类变人与禽xxxxx| 亚洲蜜桃精久久久久久久| 久久aⅴ国产紧身牛仔裤| 亚洲久久一区二区| 亚洲激情专区| 欧美日韩午夜剧场| 亚洲无亚洲人成网站77777| 欧美在线视频一区二区三区| 国产伦精品免费视频| 欧美在线不卡视频| 欧美国产精品中文字幕| 亚洲激情在线观看| 欧美激情片在线观看| 亚洲精品午夜| 欧美在线免费视屏| 在线国产精品播放| 欧美日韩91| 欧美亚洲自偷自偷| 亚洲高清免费在线| 亚洲欧美日韩国产综合| 国产一区二区0| 欧美激情一区二区三区| 亚洲私人影院| 欧美+日本+国产+在线a∨观看| 99精品热视频| 国产一区二区久久| 欧美人成网站| 久久精品夜色噜噜亚洲aⅴ| 亚洲精品欧美专区| 久久久伊人欧美| 一本色道久久精品| 国产区精品视频| 欧美二区在线| 久久国产精品一区二区| 亚洲国产精品一区二区www在线 | 国产精品一区二区三区久久久| 久久精品首页| 在线亚洲精品| 欧美福利一区二区| 久久久久久穴| 亚洲欧美日韩成人| 亚洲国产精品一区二区三区| 国产精品久久久久久久午夜片| 欧美www在线| 久久精品视频va| 亚洲男人影院| 一本一本a久久| 亚洲黄一区二区| 美女精品国产| 久久久久久综合| 欧美一级片一区| 亚洲伊人一本大道中文字幕| 亚洲国产精品视频| 激情综合五月天| 国产视频久久| 国产精品成人免费| 欧美伦理91i| 免费在线观看精品| 久久香蕉精品| 欧美一区二区私人影院日本| 在线一区二区三区四区| 亚洲日韩欧美一区二区在线| 欧美国产综合| 欧美高清在线视频观看不卡| 狂野欧美激情性xxxx| 久久国产精彩视频| 久久久久久久一区二区| 欧美在线视频a| 欧美一区二区私人影院日本 | 亚洲国产成人在线播放| 伊人婷婷久久| 亚洲成色777777在线观看影院| 日韩亚洲视频| 亚洲欧美日韩区| 亚洲国产专区校园欧美| 欧美激情亚洲另类| 免费日本视频一区| 女同性一区二区三区人了人一 | 久久资源在线| 欧美a级片一区| 亚洲国产美女| 亚洲乱码视频| 亚洲一级一区| 欧美在线观看视频在线| 久久精品日韩欧美| 欧美激情第五页| 欧美吻胸吃奶大尺度电影| 国产精品久久久久久av下载红粉 | 欧美日韩直播| 国产精品一级久久久| 国产一区二区久久精品| 亚洲韩国日本中文字幕| 一本大道久久a久久综合婷婷| 亚洲制服少妇| 毛片基地黄久久久久久天堂| 亚洲精品少妇30p| 99日韩精品| 久久精品国产99精品国产亚洲性色| 欧美中文字幕视频在线观看| 免费日本视频一区| 欧美日韩在线不卡| 国内精品视频在线观看| 亚洲精品一区二区在线观看| 亚洲一区二区欧美日韩| 久久久久久久久久久久久9999| 亚洲国产精品小视频| 亚洲综合欧美日韩| 欧美大片在线影院| 国产欧美不卡| 一区二区不卡在线视频 午夜欧美不卡在 | 国产欧美一区二区精品性| 在线播放中文字幕一区| 在线中文字幕一区| 久久久久久亚洲精品杨幂换脸 | 久久精品国产综合| 91久久在线视频| 欧美专区在线观看| 欧美三区在线观看| 亚洲国产欧美在线人成| 欧美主播一区二区三区| 亚洲精品国产精品国自产在线 | 亚洲一区二区影院| 欧美成人伊人久久综合网| 亚洲免费影视| 欧美日韩国产精品专区| 亚洲丰满在线| 久久久综合香蕉尹人综合网| 亚洲午夜一区| 欧美日韩免费高清一区色橹橹| 亚洲高清自拍|