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

隨筆 - 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 英雄哪里出來 閱讀(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>
            国产精品久久久久久久7电影| 亚洲国产精品一区二区三区| 亚洲女性裸体视频| 亚洲日本aⅴ片在线观看香蕉| 久久亚洲二区| 欧美一区二区视频在线| 欧美专区第一页| 久久久福利视频| 欧美激情在线有限公司| 亚洲人成免费| 亚洲婷婷综合久久一本伊一区| 亚洲在线中文字幕| 欧美一区国产一区| 免费视频一区| 欧美日韩在线播放三区| 国产欧美日韩视频| 91久久精品国产91久久性色| 一级成人国产| 久久九九国产精品| 亚洲肉体裸体xxxx137| 亚洲免费在线精品一区| 久久精品国产69国产精品亚洲| 久久亚洲一区| 国产精品乱码人人做人人爱| 在线观看不卡| 午夜精品影院| 亚洲第一页在线| 亚洲在线视频观看| 欧美精品在线免费观看| 亚洲你懂的在线视频| 久久综合伊人| 亚洲视频图片小说| 欧美成人综合在线| 国产婷婷一区二区| 亚洲少妇一区| 亚洲国产高潮在线观看| 性欧美1819性猛交| 欧美日韩精品不卡| 亚洲在线播放电影| 蜜臀久久久99精品久久久久久| 亚洲欧洲一区二区三区在线观看| 欧美一区二区三区四区在线观看地址| 欧美激情精品久久久久久| 国模精品一区二区三区| 亚洲欧美日韩一区| 日韩一级视频免费观看在线| 久久精品在这里| 国产欧美日韩视频一区二区三区| 一区二区三区国产在线观看| 免费黄网站欧美| 久久精品人人做人人综合 | 亚洲天堂av图片| 欧美激情亚洲| 美女久久网站| 亚洲国产视频一区| 欧美a级片网| 美女诱惑一区| 亚洲精品社区| 野花国产精品入口| 国产精品久久久久婷婷| 午夜久久久久久| 性欧美1819性猛交| 激情欧美一区二区三区在线观看| 久久国产精品久久久久久| 午夜精品久久久久| 黄色一区三区| 亚洲电影免费在线| 久久综合影视| 99re66热这里只有精品4| 亚洲人成绝费网站色www| 欧美日韩精品一区二区天天拍小说 | 亚洲网址在线| 国产伦精品一区二区三区照片91| 香蕉久久一区二区不卡无毒影院 | 中文亚洲视频在线| 国产精品―色哟哟| 欧美一级久久| 久久久伊人欧美| 日韩午夜在线播放| 亚洲一区二区三区中文字幕| 国产亚洲精品久久久| 蜜臀久久99精品久久久久久9 | 亚洲人成毛片在线播放女女| 欧美日韩免费观看一区二区三区| 亚洲欧美一区二区三区极速播放| 欧美一区二区三区男人的天堂| 在线电影院国产精品| 亚洲精品国久久99热| 亚洲级视频在线观看免费1级| 一区二区免费在线观看| 国产老女人精品毛片久久| 久热精品视频在线观看| 欧美精品一二三| 久久国产精品电影| 欧美成人精品不卡视频在线观看 | 国产一区二区激情| 亚洲成人资源网| 国产精品视频九色porn| 欧美成人a视频| 国产精品拍天天在线| 欧美激情精品久久久| 国产精品一二| 欧美激情中文字幕一区二区| 欧美亚州在线观看| 欧美freesex交免费视频| 国产精品久久国产精品99gif| 另类国产ts人妖高潮视频| 欧美日本中文字幕| 欧美aaa级| 国产一区二区在线观看免费播放| 亚洲精选在线| 在线欧美亚洲| 久久国产直播| 性做久久久久久免费观看欧美| 欧美成人激情视频免费观看| 久久天堂av综合合色| 国产精品久久久久9999高清| 欧美ed2k| 韩日在线一区| 香蕉av福利精品导航| 亚洲无限乱码一二三四麻| 猫咪成人在线观看| 久久精品国产2020观看福利| 国产精品久久久久国产a级| 亚洲人体大胆视频| 亚洲激情视频网站| 久久精品国产99| 欧美一区二区视频在线观看| 国产精品女主播一区二区三区| 亚洲国产精品福利| 亚洲精品免费在线播放| 欧美成人黄色小视频| 欧美成人综合网站| 黄色成人在线| 欧美尤物一区| 久久久亚洲影院你懂的| 欧美亚洲免费高清在线观看| 欧美性做爰猛烈叫床潮| 亚洲日本免费| 一区二区av在线| 欧美日韩一卡| 一区二区免费在线播放| 欧美亚洲一区二区在线观看| 国产日韩欧美在线播放| 亚洲欧美日韩另类| 欧美一区二区三区久久精品| 国产精品a级| 亚洲最新在线| 欧美一级黄色录像| 国产一区二区三区在线观看免费视频| 亚洲欧美999| 久久综合999| 亚洲精品日韩激情在线电影| 老司机午夜精品| 午夜激情综合网| 国内精品久久久久国产盗摄免费观看完整版| 亚洲一区二区三区免费在线观看| 香蕉久久久久久久av网站| 国产精品影视天天线| 久久av老司机精品网站导航| 欧美不卡在线视频| 99国产欧美久久久精品| 欧美伊人久久大香线蕉综合69| 狠狠色综合网| 欧美日韩国产一区二区三区地区 | 99视频有精品| 午夜影视日本亚洲欧洲精品| 狠狠久久亚洲欧美| 欧美黄色一区| 亚洲一区二区三区在线播放| 久久精品91| 亚洲伦理一区| 国产日韩一区二区三区| 久久综合网络一区二区| 在线视频欧美日韩| 美女亚洲精品| 亚洲欧美日韩直播| 亚洲三级免费| 国产一区二区三区高清在线观看 | 欧美日韩在线亚洲一区蜜芽| 香蕉精品999视频一区二区| 欧美高清在线视频| 午夜在线精品偷拍| 一本久久综合亚洲鲁鲁| 狠狠色丁香婷综合久久| 欧美网站在线观看| 免费观看在线综合色| 亚洲欧美国产另类| 99精品欧美| 欧美激情欧美激情在线五月| 午夜免费在线观看精品视频| 亚洲国产欧美久久| 国产精品一区视频| 欧美理论电影在线播放| 老司机67194精品线观看| 香蕉免费一区二区三区在线观看 | 欧美成人网在线| 欧美专区福利在线| 午夜精品短视频| 亚洲性感美女99在线|