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

ACM___________________________

______________白白の屋
posts - 182, comments - 102, trackbacks - 0, articles - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(24)

隨筆分類(332)

隨筆檔案(182)

FRIENDS

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

評論排行榜

MiYu原創(chuàng), 轉(zhuǎn)帖請注明 : 轉(zhuǎn)載自 ______________白白の屋    

 

題目地址:

  http://acm.hdu.edu.cn/showproblem.php?pid=1166 

題目描述:

敵兵布陣

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4546    Accepted Submission(s): 1818


Problem Description
C國的死對頭A國這段時間正在進行軍事演習(xí),所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線布置了N個工兵營地,Derek和Tidy的任務(wù)就是要監(jiān)視這些工兵營地的活動情況。由于采取了某種先進的監(jiān)測手段,所以每個工兵營地的人數(shù)C國都掌握的一清二楚,每個工兵營地的人數(shù)都有可能發(fā)生變動,可能增加或減少若干人手,但這些都逃不過C國的監(jiān)視。
中央情報局要研究敵人究竟演習(xí)什么戰(zhàn)術(shù),所以Tidy要隨時向Derek匯報某一段連續(xù)的工兵營地一共有多少人,例如Derek問:“Tidy,馬上匯報第3個營地到第10個營地共有多少人!”Tidy就要馬上開始計算這一段的總?cè)藬?shù)并匯報。但敵兵營地的人數(shù)經(jīng)常變動,而Derek每次詢問的段都不一樣,所以Tidy不得不每次都一個一個營地的去數(shù),很快就精疲力盡了,Derek對Tidy的計算速度越來越不滿:"你個死肥仔,算得這么慢,我炒你魷魚!”Tidy想:“你自己來算算看,這可真是一項累人的工作!我恨不得你炒我魷魚呢!”無奈之下,Tidy只好打電話向計算機專家Windbreaker求救,Windbreaker說:“死肥仔,叫你平時做多點acm題和看多點算法書,現(xiàn)在嘗到苦果了吧!”Tidy說:"我知錯了。。。"但Windbreaker已經(jīng)掛掉電話了。Tidy很苦惱,這么算他真的會崩潰的,聰明的讀者,你能寫個程序幫他完成這項工作嗎?不過如果你的程序效率不夠高的話,Tidy還是會受到Derek的責(zé)罵的.
 

Input
第一行一個整數(shù)T,表示有T組數(shù)據(jù)。
每組數(shù)據(jù)第一行一個正整數(shù)N(N<=50000),表示敵人有N個工兵營地,接下來有N個正整數(shù),第i個正整數(shù)ai代表第i個工兵營地里開始時有ai個人(1<=ai<=50)。
接下來每行有一條命令,命令有4種形式:
(1) Add i j,i和j為正整數(shù),表示第i個營地增加j個人(j不超過30)
(2)Sub i j ,i和j為正整數(shù),表示第i個營地減少j個人(j不超過30);
(3)Query i j ,i和j為正整數(shù),i<=j,表示詢問第i到第j個營地的總?cè)藬?shù);
(4)End 表示結(jié)束,這條命令在每組數(shù)據(jù)最后出現(xiàn);
每組數(shù)據(jù)最多有40000條命令
 

Output
對第i組數(shù)據(jù),首先輸出“Case i:”和回車,
對于每個Query詢問,輸出一個整數(shù)并回車,表示詢問的段中的總?cè)藬?shù),這個數(shù)最多不超過1000000。
 

Sample Input
1 10 1 2 3 4 5 6 7 8 9 10 Query 1 3 Add 3 6 Query 2 7 Sub 10 2 Add 6 3 Query 3 10 End
 

Sample Output
Case 1: 6 33 59
 

題目分析 :

        看了 一下午的書,  終于有一點明白了樹狀數(shù)組這東西 , 果然還是要做題啊, 一直不明白的地方, 刷了這
水題后,  貌似明白了一點了     . 

       這是一道純粹的 樹狀數(shù)組 的題目, 有模板的話直接模板就可以AC了, 不過手打也用不了什么時間.

因為查詢語句是固定的, 所以不需要用 字符串比較函數(shù), 直接比較首字符就可以了, 剛開始的時候想偷

懶, 把 quy 函數(shù)寫成 quy ( int x, int y ) , 想一次就把結(jié)果求出來......還是對樹狀數(shù)組的理解不深刻......從其

結(jié)構(gòu)而言, 這種想法就不可能實現(xiàn).   

 

簡單介紹下 樹狀數(shù)組 :

        樹狀數(shù)組是一個查詢和修改復(fù)雜度都為log(n)的數(shù)據(jù)結(jié)構(gòu),假設(shè)數(shù)組a[1...n],那么查詢a[1] + …… + a[i] 的時間是log級別的,而且是一個在線的數(shù)據(jù)結(jié)構(gòu),支持隨時修改某個元素的值,復(fù)雜度也為log級別。

 

來觀察一下這個圖:

 


 

令這棵樹的結(jié)點編號為C1C2……Cn。令每個結(jié)點的值為這棵樹的值的總和,那么容易發(fā)現(xiàn):

C1 = A1

C2 = A1 + A2

C3 = A3

C4 = A1 + A2 + A3 + A4

C5 = A5

C6 = A5 + A6

C7 = A7

C8 = A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8

……

C16 = A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10 + A11 + A12 + A13 + A14 + A15 + A16

 

這里有一個有趣的性質(zhì),下午推了一下發(fā)現(xiàn):

設(shè)節(jié)點編號為x,那么這個節(jié)點管轄的區(qū)間為2^k(其中kx二進制末尾0的個數(shù))個元素。因為這個區(qū)間最后一個元素必然為Ax,所以很明顯:

Cn = A(n – 2^k + 1) + …… + An

算這個2^k有一個快捷的辦法,定義一個函數(shù)如下即可:

int lowbit(int x){

return x & (x ^ (x – 1));

}

 

當(dāng)想要查詢一個SUM(n)時,可以依據(jù)如下算法即可:

step1: 令sum = 0,轉(zhuǎn)第二步;

step2: 假如n <= 0,算法結(jié)束,返回sum值,否則sum = sum + Cn,轉(zhuǎn)第三步;

step3:  n = n – lowbit(n),轉(zhuǎn)第二步。

 

可以看出,這個算法就是將這一個個區(qū)間的和全部加起來,為什么是效率是log(n)的呢?以下給出證明:

n = n – lowbit(n)這一步實際上等價于將n的二進制的最后一個1減去。而n的二進制里最多有log(n)1,所以查詢效率是log(n)的。

 

那么修改呢,修改一個節(jié)點,必須修改其所有祖先,最壞情況下為修改第一個元素,最多有log(n)的祖先。所以修改算法如下(給某個結(jié)點i加上x):

step1: 當(dāng)i > n時,算法結(jié)束,否則轉(zhuǎn)第二步;

step2: Ci = Ci + x i = i + lowbit(i)轉(zhuǎn)第一步。

 

i = i +lowbit(i)這個過程實際上也只是一個把末尾1補為0的過程。

//修改過程必須滿足減法規(guī)則!

 

所以整個程序如下:

const int MAX = 50000;

#define lowbit(x) ((x)&(-x))

int com[ MAX + 1 ],N,T;

void modify ( int pos, int val ){

     while ( pos <= N ){

            com[pos] += val;

            pos = pos + lowbit(pos);  

     } 

}

int quy ( int x ){

    int sum = 0;

    while ( x > 0 ){

           sum = sum + com[x];

           x = x - lowbit(x);

    } 

    return sum;

}

初始化 :     for ( int i = 1; i <= N; ++ i ){

                       scanf ( "%d",&x );

                       modify ( i, x ); 

                 } 

----------------------------------------------------------------------------------------------------------------------------

本題代碼如下 :

 

 /*

MiYu原創(chuàng), 轉(zhuǎn)帖請注明 : 轉(zhuǎn)載自 ______________白白の屋

          http://www.cnblog.com/MiYu

Author By : MiYu

Test      : 1

Program   : 1166

*/


#include <iostream>

using namespace std;

const int MAX = 50000;

#define lowbit(x) ((x)&(-x))

int com[ MAX + 1 ],N,T;

void modify ( int pos, int val ){

     while ( pos <= N ){

            com[pos] += val;

            pos = pos + lowbit(pos);  

     } 

}

int quy ( int x ){

    int sum = 0;

    while ( x > 0 ){

           sum = sum + com[x];

           x = x - lowbit(x);

    } 

    return sum;

}

int main ()

{

    while ( scanf ( "%d",&T ) != EOF ){

          int ca = 1,x,y;

          while ( T -- ){  

                 printf ( "Case %d:\n",ca++ );

                 scanf ( "%d",&N );

                 for ( int i = 0; i <= N; ++ i ) com[i] &= 0;

                 for ( int i = 1; i <= N; ++ i ){

                       scanf ( "%d",&x );

                       modify ( i, x ); 

                 } 

                 char ask[10];

                 while ( scanf ( "%s",ask ), ask[0] != 'E' ){    

                        scanf ( "%d%d",&x,&y );

                        switch ( ask[0] ){

                                case 'A': modify ( x, y ); break;

                                case 'S': modify ( x, -y ); break;

                                case 'Q': printf ( "%d\n",quy ( y ) - quy ( x-1 ) ); break;

                        }

                 }

          } 

    }

    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>
            91久久久亚洲精品| 久久se精品一区精品二区| 亚洲人成高清| 尤物九九久久国产精品的特点 | 欧美在线不卡视频| 欧美一级视频一区二区| 欧美在线一二三区| 欧美与欧洲交xxxx免费观看| 久久久免费观看视频| 美日韩精品视频| 亚洲国产高清aⅴ视频| 久久一区二区视频| 亚洲国产日韩欧美在线99 | 亚洲激情第一区| 99精品国产99久久久久久福利| 一区二区高清在线观看| 性8sex亚洲区入口| 久久综合色播五月| 亚洲视频精品在线| 国产精品黄视频| 国产一区二区视频在线观看| 亚洲国产精品一区二区www在线 | 欧美一区二区三区四区在线观看地址| 欧美伊人久久久久久久久影院 | 国产精品久久久久aaaa| 红桃视频国产精品| 亚洲无限乱码一二三四麻| 久久爱www| 亚洲欧洲日韩女同| 久久久久久综合| 国产精品扒开腿爽爽爽视频| 怡红院精品视频| 性欧美video另类hd性玩具| 欧美成人精品一区| 亚洲欧美精品一区| 欧美日韩一区二区欧美激情| 狠狠色综合色区| 亚洲欧美日韩国产综合在线 | 久久精品91久久香蕉加勒比| 亚洲国产精品专区久久| 欧美在线视频一区二区| 国产精品久久久久9999吃药| 亚洲精一区二区三区| 久久婷婷国产综合国色天香| 亚洲午夜av电影| 欧美精品日韩www.p站| 在线免费观看日本欧美| 久久久久国产免费免费| 亚洲视频在线观看三级| 欧美三日本三级少妇三2023 | 久久久精品国产99久久精品芒果| 日韩一级精品| 欧美日韩的一区二区| 亚洲欧洲一区二区三区在线观看| 久久米奇亚洲| 午夜伦欧美伦电影理论片| 国产精品丝袜久久久久久app| 亚洲伊人一本大道中文字幕| 亚洲美洲欧洲综合国产一区| 欧美久久久久久| 亚洲精品视频在线观看网站| 欧美激情精品久久久| 噜噜噜久久亚洲精品国产品小说| 好吊日精品视频| 久久九九国产精品| 久久精品伊人| 亚洲国产精品va在线观看黑人| 蜜桃久久av一区| 亚洲欧美一区二区三区极速播放 | 国产精品黄色| 亚洲综合欧美日韩| 宅男在线国产精品| 国产精品专区第二| 久久国产精品99久久久久久老狼| 亚洲一区中文| 性色av一区二区三区红粉影视| 国产一区二区三区观看| 裸体丰满少妇做受久久99精品| 久久人人精品| 日韩视频免费| 99爱精品视频| 狠狠色狠狠色综合人人| 亚洲第一精品电影| 国产精品高清免费在线观看| 久久国产精品一区二区三区四区| 久久久噜噜噜久久人人看| 亚洲另类自拍| 亚洲主播在线播放| 亚洲国产成人在线播放| 一区二区三区回区在观看免费视频| 国产精品久久99| 免费人成网站在线观看欧美高清| 免费观看在线综合色| 亚洲影音一区| 久久视频在线看| 中文国产成人精品| 久久精品视频免费观看| 亚洲午夜未删减在线观看| 久久久亚洲精品一区二区三区 | 欧美刺激性大交免费视频| 欧美极品在线观看| 久久久久久亚洲精品杨幂换脸| 免费久久久一本精品久久区| 亚洲一区二区成人| 久久亚洲春色中文字幕| 亚洲欧美综合另类中字| 男人的天堂成人在线| 欧美一区二区三区精品| 欧美mv日韩mv国产网站app| 午夜亚洲影视| 欧美日韩三级电影在线| 欧美国产日韩一区二区| 国产一区激情| 亚洲影视综合| 亚洲一区亚洲二区| 欧美精品在欧美一区二区少妇| 噜噜噜在线观看免费视频日韩| 国产精品毛片在线| 日韩午夜在线电影| 国产精品高潮呻吟| 亚洲国产影院| 亚洲欧洲日产国产综合网| 久久精品99国产精品日本| 欧美亚洲系列| 国产精品美女主播| 一本不卡影院| 在线亚洲成人| 91久久夜色精品国产九色| 老司机精品视频网站| 久久精品国产99精品国产亚洲性色| 欧美高清一区| 免费成人高清| 好看的亚洲午夜视频在线| 午夜性色一区二区三区免费视频| 99热这里只有成人精品国产| 欧美成人一区二区在线| 欧美大片在线观看一区二区| 韩国av一区二区三区| 欧美在线免费视频| 久久综合激情| 激情国产一区| 久久久精品视频成人| 免费在线成人| 亚洲国产视频一区二区| 麻豆成人在线| 亚洲国内自拍| 在线视频你懂得一区| 欧美午夜精品理论片a级按摩 | 日韩午夜黄色| 99伊人成综合| 欧美性猛交xxxx乱大交退制版| 日韩亚洲精品电影| 亚洲欧美另类在线观看| 国产日韩欧美一区二区| 欧美在线免费观看亚洲| 欧美韩日视频| 亚洲一区二区av电影| 国产农村妇女毛片精品久久莱园子| 亚洲女同精品视频| 免费欧美电影| 一区二区三区欧美激情| 国产精品永久免费观看| 久久精品国产v日韩v亚洲 | 国产欧美一区二区精品忘忧草 | 欧美日韩精品三区| 亚洲一区二区三区影院| 久久亚洲国产精品一区二区| 亚洲丰满在线| 欧美日韩一区二区在线| 亚洲女同同性videoxma| 欧美v亚洲v综合ⅴ国产v| 一区二区三区国产精品| 国产午夜精品视频免费不卡69堂| 久久久亚洲午夜电影| 一本一本a久久| 麻豆成人综合网| 亚洲欧美久久久久一区二区三区| 在线精品视频免费观看| 欧美亚洲不卡| 老司机亚洲精品| 亚洲自拍偷拍一区| 亚洲日本欧美日韩高观看| 性18欧美另类| aⅴ色国产欧美| 影音先锋久久久| 国产精品夜夜夜| 欧美a级一区| 久久精品官网| 亚洲图片在区色| 亚洲日本va在线观看| 久久综合久久综合这里只有精品 | 久久久.com| 一区二区三区欧美在线观看| 经典三级久久| 国产伦精品一区二区三区视频孕妇| 久久综合色8888| 久久激情五月婷婷| 亚洲在线成人精品| 99精品国产在热久久| 亚洲高清免费|