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

隨筆 - 97, 文章 - 22, 評論 - 81, 引用 - 0
數(shù)據(jù)加載中……

PKU 3468 A Simple Problem with Integers

題目鏈接:http://poj.org/problem?id=3468

/*
題意:
    給定一個長度為N(N <= 100000)的數(shù)列Si,緊接著Q條詢問,詢問格式如下:
"C a b c" 表示對 Aa, Aa+1,  , Ab 的值都加上一個c(-10000 <= c <= 10000)
"Q a b" 表示求 Aa, Aa+1,  , Ab 的和。

解法:
線段樹

思路:
    線段樹的經典題目了,主要是一個lazy思想。這題要求求和,所以我們給線段樹
的每個結點添加一個sum字段和一個lazy-tag標記(等下來討論這個標記的作用)。
    每次在區(qū)間[a, b]插入一個c的時候,如果更新到葉子節(jié)點,那么無疑是nlogn的,
比純暴力還要不值,所以添加lazy標記是為了延遲更新,使得每次插入和詢問都控制
在log(n)。在插入時,只在[a, b]完全覆蓋當前結點區(qū)間時,才把c的值累加給lazy-
tag,sum的值也加上當前 當前結點區(qū)間長度*c。如果沒有完全覆蓋,則繼續(xù)遞歸左右
兒子,并且如果當前結點存在lazy標記,那么將它的值累加到左右兒子的lazy標記上,
并且讓左右兒子更新sum值,最后當前結點的lazy標記清零。注意遞歸完畢時需要更新
當前結點的sum值,因為左右兒子的sum值的改變勢必會影響到當前結點。詢問時也一
樣,每次將當前結點的lazy標記傳遞給兒子。當遞歸到區(qū)間完全覆蓋的時候返回,這樣
詢問也是log(n)的。
*/

#include 
<iostream>

using namespace std;

#define ll __int64

#define maxn 100200

struct Tree {
    
int idx;
    
int l, r;
    ll sum;      
// 當前區(qū)間的和
    ll lazyTag;  // lazy 標記

    
int GetMid() {
        
return (l + r) >> 1;
    }


    
int GetLen() {
        
return r - l + 1;
    }


    
void ClearTag() {
        
if(lazyTag) {
            T[idx
<<1].lazyTag   += lazyTag;
            T[idx
<<1|1].lazyTag += lazyTag;
            
            T[idx
<<1].sum       += lazyTag * T[idx<<1].GetLen();
            T[idx
<<1|1].sum     += lazyTag * T[idx<<1|1].GetLen();
            
            lazyTag 
= 0;
        }

    }

}
T[4*maxn];

int n, m;
int v[maxn];

void Build(int p, int l, int r) {
    T[p].l 
= l; T[p].r = r;
    T[p].idx 
= p; T[p].lazyTag = 0;
    
if(l == r) {
        T[p].sum 
= v[l];
        
return ;
    }

    
int mid = (l + r) >> 1;
    Build(p
<<1, l, mid);
    Build(p
<<1|1, mid+1, r);
    T[p].sum 
= T[p<<1].sum + T[p<<1|1].sum;
}


void Insert(int p, int l, int r, ll v) {
    
if(l <= T[p].l && T[p].r <= r) {
        T[p].lazyTag 
+= v;
        T[p].sum 
+= v * T[p].GetLen();
        
return ;
    }

    T[p].ClearTag();
    
int mid = T[p].GetMid();
    
if(l <= mid) {
        Insert(p
<<1, l, r, v);
    }

    
if(r >= mid + 1{
        Insert(p
<<1|1, l, r, v);
    }

    T[p].sum 
= T[p<<1].sum + T[p<<1|1].sum;
}


ll Query(
int p, int l, int r) {
    
if(l <= T[p].l && T[p].r <= r) {
        
return T[p].sum;
    }

    T[p].ClearTag();
    
int mid = T[p].GetMid();
    ll v 
= 0;
    
if(l <= mid) {
        v 
+= Query(p<<1, l, r);
    }

    
if(r >= mid + 1{
        v 
+= Query(p<<1|1, l, r);
    }

    
return v;
}


int main() {
    
char str[100];
    
int x, y, z;
    
int i;
    
while(scanf("%d %d"&n, &m) != EOF) {
        
for(i = 1; i <= n; i++{
            scanf(
"%d"&v[i]);
        }

        Build(
11, n);
        
while(m--{
            scanf(
"%s", str);
            
if(!strcmp(str, "Q")) {
                scanf(
"%d %d"&x, &y);
                ll val 
= Query(1, x, y);
                printf(
"%I64d\n", val);
            }
else {
                scanf(
"%d %d %d"&x, &y, &z);
                Insert(
1, x, y, z);
            }

        }

    }

    
return 0;
}

posted on 2011-03-30 11:16 英雄哪里出來 閱讀(1321) 評論(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国产精品99久久久久久粉嫩| 国产性色一区二区| 国产一区999| 狠狠色丁香婷婷综合| 国内综合精品午夜久久资源| 在线成人h网| 亚洲毛片一区二区| 亚洲午夜在线观看| 欧美一级大片在线观看| 亚洲影视在线播放| 亚洲一区三区视频在线观看| 99精品热视频| 日韩香蕉视频| 一区二区动漫| 在线一区二区日韩| 日韩香蕉视频| 欧美v日韩v国产v| 西西裸体人体做爰大胆久久久| 国产欧美日韩精品一区 | 91久久精品视频| 国产精品一区二区三区四区 | 亚洲午夜极品| 激情久久综艺| 国产婷婷色综合av蜜臀av| 欧美韩日亚洲| 久久久综合免费视频| 亚洲综合精品| 一区二区免费在线播放| 欧美激情视频一区二区三区不卡| 午夜精品视频在线观看| 一区二区激情视频| 亚洲黄色成人网| 一区在线视频| 国产亚洲精品激情久久| 国产精品久久波多野结衣| 欧美va亚洲va香蕉在线| 久久精品人人爽| 性欧美8khd高清极品| 亚洲自拍啪啪| 亚洲一区二区四区| 宅男精品导航| 亚洲天天影视| 亚洲香蕉伊综合在人在线视看| 亚洲黄色在线看| 亚洲高清在线观看一区| 欧美激情中文字幕乱码免费| 久久综合九色综合欧美就去吻| 欧美一区二区女人| 欧美一区二区三区成人| 欧美在线一级va免费观看| 亚洲欧美自拍偷拍| 欧美在线观看视频一区二区| 亚洲综合日韩在线| 亚洲欧美日本国产有色| 亚洲免费在线观看| 欧美亚洲日本国产| 久久激情五月丁香伊人| 久久亚洲风情| 免费在线看一区| 亚洲免费播放| 亚洲精品小视频在线观看| 亚洲欧洲视频| 一区二区三区视频在线| 午夜精品久久久久久久99水蜜桃| 亚洲校园激情| 久久gogo国模啪啪人体图| 久久综合伊人77777麻豆| 欧美电影在线播放| 国产精品嫩草影院一区二区| 国产美女精品| 在线免费高清一区二区三区| 亚洲欧洲在线一区| 一区二区av在线| 欧美在线播放视频| 欧美69视频| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 一本色道久久加勒比精品| 一区二区毛片| 性欧美大战久久久久久久久| 久久岛国电影| 亚洲国产精品悠悠久久琪琪| 日韩午夜免费视频| 欧美专区日韩视频| 欧美日韩国产成人在线91| 国产欧美在线观看| 亚洲国产成人porn| 亚洲综合视频网| 免费美女久久99| 亚洲午夜久久久久久久久电影院| 欧美专区在线观看| 国产精品v欧美精品∨日韩| 在线日韩视频| …久久精品99久久香蕉国产| 亚洲综合视频1区| 欧美国产日本高清在线| 亚洲欧美日韩第一区| 能在线观看的日韩av| 国产亚洲欧美日韩在线一区| 一区二区国产日产| 欧美国产日本在线| 欧美亚洲日本一区| 国产精品jizz在线观看美国| 91久久久久久国产精品| 久久久久国内| 亚洲午夜免费视频| 欧美极品aⅴ影院| 在线观看欧美| 亚洲视频999| 99亚洲精品| 亚洲人体一区| 欧美日韩国产成人高清视频| 亚洲精品美女在线观看| 欧美成人综合| 欧美激情精品久久久久久变态 | 国产精品国产a| 国产精品午夜电影| 99ri日韩精品视频| 欧美激情在线狂野欧美精品| 久久久99爱| 国产亚洲欧美一区在线观看| 在线观看视频一区二区| 欧美激情精品久久久久| 久久久久久久一区二区三区| 国产一区二区av| 久久本道综合色狠狠五月| 99国产麻豆精品| 欧美黄色一级视频| 一区二区欧美精品| 日韩网站在线| 亚洲精品久久久久久一区二区| 男女精品网站| 欧美一区二区精品久久911| 欧美成人r级一区二区三区| 国产亚洲欧洲| 久久影音先锋| 亚洲第一在线视频| 国产专区综合网| 六月天综合网| 蜜桃av一区二区| 99国产精品一区| 一本大道久久精品懂色aⅴ| 欧美日韩精品免费观看| 国产精品一区二区男女羞羞无遮挡| 亚洲精品乱码久久久久久日本蜜臀| 男女av一区三区二区色多| 悠悠资源网亚洲青| 亚洲激情在线播放| 国产精品黄视频| 性色一区二区| 久久精品91| 欧美日韩国产一区| 国产精品成人免费| 中日韩在线视频| 狂野欧美激情性xxxx欧美| 欧美成人精品不卡视频在线观看| 亚洲精品一区二区在线观看| 欧美少妇一区| 久久天天躁夜夜躁狠狠躁2022 | 欧美日韩国语| 亚洲永久免费精品| 午夜久久黄色| 亚洲高清免费在线| 99国产精品99久久久久久| 亚洲精品国产品国语在线app | 1000部国产精品成人观看| 亚洲电影在线播放| 国产精品wwwwww| 久久视频国产精品免费视频在线| 久久影视精品| 亚洲性av在线| 久久久精品一区二区三区| 亚洲图片你懂的| 亚洲视频一区二区| 欧美一区二区免费视频| 欧美国产一区二区在线观看| 欧美一级久久久久久久大片| 免费成人av资源网| 亚洲欧美影音先锋| 欧美xx视频| 亚洲毛片av| 国产欧美日韩视频| 99视频一区二区| 亚洲高清不卡| 午夜精品一区二区三区四区 | 国产日韩欧美另类| 99亚洲一区二区| 亚洲人成绝费网站色www| 亚洲精品日韩激情在线电影| 性色一区二区三区| 欧美色视频日本高清在线观看| 欧美国产日本| 在线免费观看成人网| 久久精品一区二区| 久久精品水蜜桃av综合天堂| 亚洲视频免费观看| 亚洲成人资源网| 伊人婷婷欧美激情|