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

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

PKU 3468 A Simple Problem with Integers

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

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

#include 
<iostream>

using namespace std;

#define ll __int64

#define maxn 100200

struct Tree {
    
int idx;
    
int l, r;
    ll sum;      
// 當前區間的和
    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 英雄哪里出來 閱讀(1323) 評論(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>
            亚洲大胆在线| 尤妮丝一区二区裸体视频| 亚洲欧美日韩国产一区二区三区| 亚洲欧美日韩国产综合精品二区| 国产精品成人在线| 亚洲成色www久久网站| 亚洲综合视频在线| 欧美激情一二区| 亚洲欧美日本在线| 国产一区二区三区四区老人| 亚洲视频你懂的| 亚洲二区在线观看| 欧美日韩国产页| 亚洲黑丝在线| 老牛影视一区二区三区| 午夜视频在线观看一区二区三区 | 一区二区av在线| 亚洲综合电影| 性色av一区二区三区| 亚洲国产精品毛片| 狂野欧美一区| 欧美日韩精品福利| 久久久久一区二区三区| 亚洲午夜免费福利视频| 欧美激情综合色| 亚洲免费观看高清完整版在线观看| 久久久亚洲综合| 欧美经典一区二区三区| 亚洲女同同性videoxma| 一区二区精品在线观看| 欧美日韩另类字幕中文| 中国成人黄色视屏| 久久国产精品黑丝| 一区一区视频| 欧美成黄导航| 欧美顶级少妇做爰| 99成人精品| 亚洲午夜av电影| 亚洲欧洲偷拍精品| 日韩亚洲视频| 国产精品美女久久久浪潮软件| 国内外成人免费视频| 久久国产精品久久国产精品| 性一交一乱一区二区洋洋av| 一本色道久久综合亚洲精品小说| 久久精品一二三区| 亚洲精品少妇| 亚洲天堂网在线观看| 亚洲免费观看在线观看| 欧美中在线观看| 亚洲精品在线免费观看视频| 欧美中文字幕久久| 性欧美暴力猛交另类hd| 久久人人97超碰人人澡爱香蕉| 在线免费不卡视频| 欧美一区二区三区免费视频| 91久久久在线| 久久免费精品日本久久中文字幕| 欧美在线观看视频一区二区三区| 久久久久久久久岛国免费| 日韩一区二区精品| 美女黄网久久| 欧美一区高清| 国产精品午夜国产小视频| 你懂的国产精品| 伊人狠狠色j香婷婷综合| 香蕉av777xxx色综合一区| 午夜精品久久久久| 欧美成人嫩草网站| 亚洲高清一区二| 亚洲欧洲一区二区三区久久| 六月丁香综合| 亚洲国产欧美日韩精品| 国产精品美女在线观看| 亚洲综合三区| 99视频精品| 国产精品theporn| 欧美激情成人在线| 亚洲精品欧美在线| 欧美日韩一区二区三区免费| 一本不卡影院| 亚洲欧洲免费视频| 欧美激情影院| 亚洲一区二区精品在线| 日韩视频在线一区二区三区| 欧美久久久久久久久久| 欧美激情视频网站| 一区二区三区国产精华| 国产精品久久久久一区二区三区共| 在线一区二区三区四区| 日韩午夜在线视频| 国产精品久久久久久久9999| 欧美亚洲视频在线观看| 欧美激情1区2区3区| 中文精品视频| 国产在线不卡| 欧美日韩另类字幕中文| 欧美一区二区播放| 最新中文字幕亚洲| 亚洲人成在线观看网站高清| 欧美日韩中文字幕在线视频| 亚洲国产日韩欧美| 亚洲欧美日本另类| 亚洲二区在线| 国产免费成人| 亚洲欧美日韩天堂| 亚洲电影免费观看高清完整版在线观看| 日韩网站免费观看| 国产在线乱码一区二区三区| 欧美精品在线观看一区二区| 香蕉久久国产| 日韩视频中文| 欧美v国产在线一区二区三区| 正在播放亚洲| 在线观看视频日韩| 国产欧美日韩在线视频| 性视频1819p久久| 亚洲免费成人| 欧美激情一二区| 久久国产精品毛片| 激情成人中文字幕| 国产精品青草综合久久久久99| 欧美a级大片| 一本久道综合久久精品| 欧美激情四色| 免费不卡在线视频| 一本久久综合| 亚洲国产精品久久91精品| 国产午夜精品视频| 免费久久99精品国产| 欧美一区二区三区免费视| 在线综合亚洲欧美在线视频| 亚洲三级性片| 久久国产精品99久久久久久老狼| 妖精成人www高清在线观看| 亚洲第一精品夜夜躁人人爽| 国产欧美日韩精品丝袜高跟鞋 | 欧美成黄导航| 久久久久久久久久久成人| 午夜在线电影亚洲一区| 亚洲午夜激情| 亚洲影视中文字幕| 亚洲一区二区三区在线| 亚洲一区二区三区在线视频| 一本综合久久| 亚洲一区日韩在线| 亚洲欧美日本国产有色| 先锋影音一区二区三区| 欧美一级播放| 久久久久久久高潮| 免费高清在线一区| 欧美大片免费观看| 欧美日韩美女在线观看| 欧美视频不卡| 国产日韩精品一区二区| 国内视频精品| 亚洲日本aⅴ片在线观看香蕉| 亚洲欧洲日本专区| 一区二区三区欧美成人| 午夜久久tv| 久久久久一区二区三区四区| 欧美www视频在线观看| 亚洲成色www久久网站| 欧美与黑人午夜性猛交久久久| 香蕉尹人综合在线观看| 久久久青草婷婷精品综合日韩| 卡通动漫国产精品| 亚洲激情一区二区| 亚洲一区二区综合| 久久久久久久999| 欧美激情日韩| 国产麻豆91精品| 亚洲激情欧美激情| 亚洲愉拍自拍另类高清精品| 久久精品国产亚洲aⅴ| 免费日韩av| 一区二区三欧美| 久久久久久久久久久久久9999| 欧美激情四色 | 久久激情综合| 欧美日韩国产综合视频在线观看| 国产欧美亚洲精品| 亚洲精品国偷自产在线99热| 午夜国产精品视频| 欧美成人日本| 欧美激情一区二区三区全黄| 一区二区三区黄色| 久久伊人精品天天| 国产精品乱子久久久久| 亚洲国产精品电影在线观看| 欧美亚洲色图校园春色| 亚洲缚视频在线观看| 亚洲欧美日本日韩| 欧美精品午夜| 亚洲国产天堂网精品网站| 欧美一级精品大片| 日韩亚洲视频| 女人天堂亚洲aⅴ在线观看| 国产亚洲一区二区在线观看| 亚洲午夜久久久久久尤物|