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

poj 3468 A Simple Problem with Integers 線段樹成段延遲更新

   用線段樹成段更新不能立即全部更新,必須搞延遲操作。其實,就是針對每個節點,另外搞一個域表示延遲
更新的數目。然后,在更新操作和查找操作的時候都把父親節點的延遲域往2個兒子走。
   這個題是要成段增加值,所以在寫PushDown函數的時候要注意,只能給兒子節點加上父親節點壓過來的值
乘以兒子區間的長度。這題貌似用樹狀數組也可以做,不過解法肯定意思不是那么直白的。不過速度肯定會快。
樹狀數組解法:http://kenby.iteye.com/blog/962159
   線段樹網上流行的解法都是開最多節點數目4倍的數組。以位置1作為根,每個位置其實代表的是一個區間。
某人位置1代表1-N或者0-(N-1)區間,具體看題目了。那么2就代表區間1-(1+N)/2,3就代表區間(1+N)/2+1 - N了。
   至于lazy標記還是搞個大數組,意義和線段樹數組一樣,搞清楚之后寫起來都比較簡單,最重要的是變形來
解決一些要求奇怪的題目。

   
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
typedef long long INT;

const INT MAX_N = 100010;
const INT INF = 0x7ffffffffffffffLL;
INT nTree[MAX_N << 2];
INT nAdd[MAX_N << 2];
INT nN, nQ;

void PushUp(INT nRt)
{
    nTree[nRt] = nTree[nRt << 1] + nTree[nRt << 1 | 1];
}

void BuildTree(INT nL, INT nR, INT nRt)
{
    nAdd[nRt] = 0;
    if (nL == nR)
    {
        scanf("%I64d", &nTree[nRt]);
        return;
    }
    
    INT nMid = (nL + nR) >> 1;
    BuildTree(nL, nMid, nRt << 1);
    BuildTree(nMid + 1, nR, nRt << 1 | 1);
    PushUp(nRt);
}

void PushDown(INT nL, INT nR, INT nRt)
{
    INT nMid = (nL + nR) >> 1;
    INT nLs = nRt << 1;
    INT nRs = nLs | 1;
    
    if (nAdd[nRt])
    {
        nAdd[nLs] += nAdd[nRt];
        nAdd[nRs] += nAdd[nRt];
        nTree[nLs] += (nMid - nL + 1) * nAdd[nRt];
        nTree[nRs] += (nR - nMid) * nAdd[nRt];
        nAdd[nRt] = 0;
    }
}

void Update(INT nL, INT nR, INT nRt, INT nX, INT nY, INT nV)
{
    if (nL >= nX && nR <= nY)
    {
        nTree[nRt] += nV * (nR - nL + 1);
        nAdd[nRt] += nV;
        return;
    }
    
    PushDown(nL, nR, nRt);
    INT nMid = (nL + nR) >> 1;
    if (nX <= nMid) Update(nL, nMid, nRt << 1, nX, nY, nV);
    if (nY > nMid) Update(nMid + 1, nR, nRt << 1 | 1, nX, nY, nV);
    PushUp(nRt);
}

INT Query(INT nL, INT nR, INT nRt, INT nX, INT nY)
{
    if (nL >= nX && nR <= nY)
    {
        return nTree[nRt];
    }
    PushDown(nL, nR, nRt);
    INT nAns = 0;
    INT nMid = (nL + nR) >> 1;
    if (nX <= nMid) nAns += Query(nL, nMid, nRt << 1, nX, nY);
    if (nY > nMid) nAns += Query(nMid + 1, nR, nRt << 1 | 1, nX, nY);
    return nAns;
}

int main()
{
    INT nTemp;
    while (scanf("%I64d%I64d", &nN, &nQ) == 2)
    {
        BuildTree(1, nN, 1);
        
        while (nQ--)
        {
            char szCmd[10];
            INT nX, nY, nV;
            scanf("%s", szCmd);
            if (szCmd[0] == 'Q')
            {
                scanf("%I64d%I64d", &nX, &nY);
                printf("%I64d\n", Query(1, nN, 1, nX, nY));
            }
            else
            {
                scanf("%I64d%I64d%I64d", &nX, &nY, &nV);
                Update(1, nN, 1, nX, nY, nV);
            }
        }
    }
    
    return 0;
}
   

posted on 2012-09-16 20:42 yx 閱讀(1388) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構

<2012年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

導航

統計

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學

網友

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            91久久一区二区| 亚洲精品美女久久7777777| 亚洲特色特黄| 日韩午夜激情电影| 日韩亚洲欧美成人一区| 日韩午夜在线视频| 亚洲一区精品在线| 欧美一区二区三区喷汁尤物| 欧美一级视频一区二区| 久久xxxx| 欧美风情在线| 欧美三区在线视频| 国产欧美日韩| 亚洲国产高清一区二区三区| 亚洲欧洲在线观看| 一本久久青青| 欧美在线视频全部完| 久久永久免费| 99国产精品视频免费观看| 亚洲小说欧美另类社区| 久久九九精品| 欧美激情一区| 国产区在线观看成人精品| 亚洲国产一区在线观看| 亚洲一区免费网站| 欧美肥婆在线| 性欧美video另类hd性玩具| 欧美成人一品| 国产一区欧美| 亚洲欧美国产高清va在线播| 欧美成人亚洲| 午夜精品在线| 欧美日韩午夜在线视频| 激情综合网激情| 亚洲欧美成人综合| 亚洲精品国产品国语在线app| 亚洲在线一区| 欧美母乳在线| 亚洲精品人人| 欧美成人按摩| 欧美伊人影院| 国产精品视频xxxx| 欧美一区二区视频97| 欧美日韩视频一区二区| 亚洲激情成人网| 久久久精彩视频| 亚洲视频在线观看视频| 米奇777在线欧美播放| 国产日韩一区二区三区在线播放| 欧美国产日韩一区| 国产欧美一区二区在线观看| 亚洲国产精品ⅴa在线观看| 中文国产成人精品| 欧美激情黄色片| 亚洲人体偷拍| 久久精选视频| 亚洲视频网在线直播| 另类尿喷潮videofree| 国产日韩欧美电影在线观看| 日韩一级片网址| 欧美国产一区视频在线观看| 亚洲制服欧美中文字幕中文字幕| 午夜精品国产| 欧美日韩直播| 亚洲精品国产精品久久清纯直播| 欧美自拍偷拍| 亚洲亚洲精品三区日韩精品在线视频 | 日韩视频一区二区三区在线播放免费观看 | 亚洲欧美另类中文字幕| 欧美激情四色| 久久亚洲图片| 激情文学一区| 久久久噜噜噜久久久| 欧美国产综合| 亚洲免费不卡| 国产欧美日韩另类视频免费观看| 亚洲午夜电影网| 亚洲最新合集| 国产精品高潮粉嫩av| 亚洲精品一区二| 亚洲第一在线综合网站| 亚洲影院高清在线| 欧美黄色免费| 在线观看视频一区二区欧美日韩| 一区二区三区日韩欧美精品| 亚洲国产精品综合| 欧美电影免费观看高清完整版| 136国产福利精品导航网址应用| 久久理论片午夜琪琪电影网| 久久久av毛片精品| 久久夜色精品国产欧美乱| 狠狠狠色丁香婷婷综合久久五月| 欧美一区二区在线播放| 亚洲欧洲av一区二区| 国产一区二区三区四区三区四| 日韩亚洲国产欧美| 亚洲影院色在线观看免费| 欧美在线1区| 亚洲第一区中文99精品| 欧美激情片在线观看| 欧美国产日本韩| 亚洲嫩草精品久久| 欧美一二三区在线观看| 亚洲第一级黄色片| 亚洲精品欧美日韩专区| 欧美视频一区二区三区在线观看 | 亚洲欧美在线磁力| 欧美中文字幕第一页| 亚洲福利视频三区| 亚洲美女尤物影院| 国产毛片精品国产一区二区三区| 久久九九电影| 欧美成人综合网站| 午夜精品久久久久久久99黑人| 欧美一区=区| 亚洲欧洲精品天堂一级| 麻豆乱码国产一区二区三区| 欧美久色视频| 久久天天躁夜夜躁狠狠躁2022| 欧美激情久久久久久| 久久精品国产精品亚洲综合| 欧美电影免费观看大全| 久久国产黑丝| 国产精品国产三级国产专区53| 蜜乳av另类精品一区二区| 欧美日韩综合在线免费观看| 久久综合免费视频影院| 久久日韩精品| 免费短视频成人日韩| 欧美亚洲第一页| 亚洲风情在线资源站| 国产欧美精品一区二区色综合| 亚洲国产小视频在线观看| 国产美女精品免费电影| 亚洲精品视频一区二区三区| 国产一区二区中文| 亚洲视频在线播放| 亚洲欧洲日本在线| 久久动漫亚洲| 亚洲破处大片| 久色婷婷小香蕉久久| 久久久.com| 国产精品永久| 亚洲一区视频在线| 亚洲资源在线观看| 欧美日韩大陆在线| 亚洲国产精彩中文乱码av在线播放| 国产美女诱惑一区二区| aa级大片欧美| 正在播放亚洲| 国产精品一区二区久久久| 日韩系列欧美系列| 欧美成ee人免费视频| 另类成人小视频在线| 国产一区av在线| 欧美亚洲视频| 亚洲第一级黄色片| 亚洲精品综合久久中文字幕| 美女图片一区二区| 欧美福利电影网| 亚洲精品欧美专区| 欧美人在线视频| 亚洲伦理自拍| 久久一区二区三区四区| 国产主播一区二区| 久久精品欧美| 噜噜噜噜噜久久久久久91| 国产视频一区在线| 欧美专区在线播放| 美女视频网站黄色亚洲| 亚洲国产精品一区二区第四页av | 免费观看成人网| 极品尤物一区二区三区| 久久频这里精品99香蕉| 欧美xart系列高清| 亚洲麻豆一区| 老司机亚洲精品| 中文精品视频| 久久成人av少妇免费| 一区二区三区在线免费视频| 一区二区日韩精品| 欧美一区日韩一区| 在线观看不卡av| 欧美日韩精品一区| 午夜视频在线观看一区二区三区| 一二三区精品| 亚洲国产成人在线播放| 欧美日韩免费在线| 欧美一区二区三区四区视频| 免费在线观看精品| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 在线日韩视频| 欧美日韩视频在线第一区| 香蕉国产精品偷在线观看不卡| 另类春色校园亚洲| 亚洲精选久久| 国产一区二区日韩精品| 欧美国内亚洲| 久久av一区二区| 99热这里只有精品8|