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

coreBugZJ

此 blog 已棄。

EOJ 2525 Light Switching

  1/*
  2EOJ 2525 Light Switching
  3
  4
  5----問題描述:
  6
  7Farmer John tries to keep the cows sharp by letting them play with intellectual toys.
  8One of the larger toys is the lights in the barn.
  9
 10Each of the N (2 <= N <= 100,000) cow stalls conveniently numbered 1..N has a colorful light above it.
 11
 12At the beginning of the evening, all the lights are off. The cows control the lights with a set of N pushbutton switches that toggle the lights; pushing switch i changes the state of light i from off to on or from on to off.
 13
 14The cows read and execute a list of M (1 <= M <= 100,000) operations expressed as one of two integers (0 <= operation <= 1).
 15
 16The first operation (denoted by a 0 command) includes two subsequent integers S_i and E_i (1 <= S_i <= E_i <= N) that indicate a starting switch and ending switch. They execute the operation by pushing each pushbutton from S_i through E_i inclusive exactly once.
 17
 18The second operation (denoted by a 1 command) asks the cows to count how many lights are on in the range given by two integers S_i and E_i (1 <= S_i <= E_i <= N) which specify the inclusive range in which the cows should count the number of lights that are on.
 19
 20Help FJ ensure the cows are getting the correct answer by processing the list and producing the proper counts. 
 21
 22
 23----輸入:
 24
 25* Line 1: Two space-separated integers: N and M
 26
 27* Lines 2..M+1: Each line represents an operation with three space-separated integers: operation, S_i, and E_i 
 28
 29
 30----輸出:
 31
 32* Lines 1..number of queries: For each output query, print the count as an integer by itself on a single line.
 33
 34
 35----樣例輸入:
 36
 374 5
 380 1 2
 390 2 4
 401 2 3
 410 2 4
 421 1 4
 43
 44INPUT DETAILS:
 45 
 46Four lights; five commands. Here is the sequence that should be processed:
 47
 48=========Lights
 49=========1 2 3 4
 50Init:====O O O O , O = off * = on
 510 1 2 -->* * O O ,toggle lights 1 and 2
 520 2 4 -->* O * *
 531 2 3 -->1 ,count the number of lit lights in range 2..3
 540 2 4 -->* * O O ,toggle lights 2, 3, and 4
 551 1 4 -->2 ,count the number of lit lights in the range 1..4
 56
 57
 58----樣例輸出:
 59
 601
 612
 62
 63
 64----分析:
 65
 66
 67*/

 68
 69
 70template<unsigned int N>
 71class CProblem
 72{
 73public : 
 74        void init( int b, int e ){
 75                init( 1, b, e );
 76        }

 77        int query( int b, int e ){
 78                begin = b;
 79                end   = e;
 80                return query( 1 );
 81        }

 82        void modify( int b, int e ){
 83                begin = b;
 84                end   = e;
 85                modify( 1 );
 86        }

 87
 88private : 
 89        void init( int node, int b, int e ){
 90                left    [ node ] = b;
 91                right   [ node ] = e;
 92                sum     [ node ] = 0;
 93                modified[ node ] = false;
 94                if( b + 1 < e ){
 95                        init( node + node, b, ( b + e ) / 2 );
 96                        init( node + node + 1, ( b + e ) / 2, e );
 97                }

 98        }

 99        int query( int node ){
100                if( ( end <= left[ node ] ) || ( right[ node ] <= begin ) ){
101                        return 0;
102                }

103                if( ( begin <= left[ node ] ) && ( right[ node ] <= end ) ){
104                        return sum[ node ];
105                }

106                int len = ( right[ node ] > end ? end : right[ node ] ) - ( left[ node ] < begin ? begin : left[ node ] );
107                return ( modified[ node ] ) ? ( len - query( node + node ) - query( node + node + 1 ) ) : ( query( node + node ) + query( node + node + 1 ) );
108        }

109        void modify( int node ){
110                if( ( end <= left[ node ] ) || ( right[ node ] <= begin ) ){
111                        return;
112                }

113                if( ( begin <= left[ node ] ) && ( right[ node ] <= end ) ){
114                        sum[ node ] = right[ node ] - left[ node ] - sum[ node ];
115                        modified[ node ] = ! modified[ node ];
116                        return;
117                }

118                modify( node + node );
119                modify( node + node + 1 );
120                sum[ node ] = ( modified[ node ] ) ? ( right[ node ] - left[ node ] - sum[ node + node ] - sum[ node + node + 1 ] ) : ( sum[ node + node ] + sum[ node + node + 1 ] );
121        }

122
123        int  left[ N + N ], right[ N + N ], sum[ N + N ], begin, end;
124        bool modified[ N + N ];
125}
;
126
127#include <iostream>
128#include <cstdio>
129
130using namespace std;
131
132CProblem<150003> prob;
133
134int main(){
135        int n, m, cmd, a, b;
136        scanf( "%d%d"&n, &m );
137        prob.init( 1, n + 1 );
138        while( m-- ){
139                scanf( "%d%d%d"&cmd, &a, &b );
140                if( cmd ){
141                        printf( "%d\n", prob.query( a, b + 1 ) );
142                }

143                else{
144                        prob.modify( a, b + 1 );
145                }

146        }

147        return 0;
148}

149

posted on 2012-04-22 22:46 coreBugZJ 閱讀(641) 評論(0)  編輯 收藏 引用 所屬分類: ACMAlgorithmDataStructure課內作業

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品每日更新| 午夜精品视频在线观看一区二区| 夜夜嗨av一区二区三区中文字幕| 激情六月婷婷综合| 亚洲香蕉在线观看| 一区二区三区欧美| 欧美福利一区二区三区| 玖玖玖国产精品| 国产欧美日韩另类一区| 在线亚洲伦理| 亚洲一区二区黄色| 欧美精品午夜| 91久久精品美女高潮| 在线成人激情| 久久精品一区二区| 久久五月天婷婷| 国产主播在线一区| 欧美专区第一页| 久久久久久亚洲综合影院红桃 | 国内精品久久久久影院色| 亚洲视频一二三| 亚洲欧美变态国产另类| 国产精品黄视频| 一区二区激情| 午夜久久福利| 国产欧美日韩一区二区三区在线| 亚洲欧美日产图| 久久爱www.| 狠狠色狠狠色综合日日91app| 午夜日韩激情| 免费看精品久久片| 亚洲日本精品国产第一区| 蜜桃av一区二区| 亚洲黄色一区二区三区| 一区二区三区高清| 国产精品久久久久久久久搜平片| 亚洲欧美激情在线视频| 久久免费精品日本久久中文字幕| 永久久久久久| 欧美国产日韩在线| 一区二区高清| 久久精品一区二区三区中文字幕| 一区二区在线视频播放| 欧美激情亚洲| 亚洲午夜在线观看| 久久综合九色综合欧美就去吻 | 性亚洲最疯狂xxxx高清| 激情文学综合丁香| 欧美99久久| 亚洲一区二区三区四区五区黄| 久久成人国产| 亚洲三级性片| 国产精品色在线| 狂野欧美激情性xxxx欧美| 亚洲美女电影在线| 久久久精彩视频| 99热在这里有精品免费| 国产精品人人做人人爽| 久久一区二区三区av| 日韩一级在线| 猛干欧美女孩| 亚洲永久网站| 最新日韩精品| 国产日韩av一区二区| 欧美激情第4页| 欧美在线免费观看视频| 亚洲精品在线二区| 久久综合九色欧美综合狠狠| 一本一本久久a久久精品综合麻豆| 国产日韩在线视频| 欧美精品一区在线观看| 久久久国产视频91| 亚洲淫性视频| 最新亚洲一区| 免费成人av资源网| 午夜伦欧美伦电影理论片| 亚洲国产1区| 国产午夜精品视频| 欧美性视频网站| 欧美激情bt| 久久伊人一区二区| 欧美一区二区女人| 在线亚洲一区观看| 亚洲精品乱码久久久久久久久| 开元免费观看欧美电视剧网站| 亚洲自啪免费| 亚洲午夜一区二区三区| 亚洲精品激情| 亚洲欧洲一区二区在线观看| 狠狠色丁香久久婷婷综合丁香| 国产精一区二区三区| 欧美色图一区二区三区| 欧美精品日韩www.p站| 欧美成人国产| 裸体一区二区| 老司机久久99久久精品播放免费| 欧美一区二区三区的| 亚洲综合999| 亚洲综合国产精品| 在线一区二区三区四区五区| 99热在这里有精品免费| 亚洲九九爱视频| 亚洲毛片在线免费观看| 欧美成人午夜77777| 一区二区三区免费网站| 亚洲精品久久| 91久久国产综合久久| 亚洲国产成人精品视频| 欧美暴力喷水在线| 欧美阿v一级看视频| 欧美成人亚洲成人| 欧美激情国产精品| 亚洲人精品午夜在线观看| 最近看过的日韩成人| 99精品热视频只有精品10| 中文无字幕一区二区三区| 亚洲嫩草精品久久| 欧美亚洲一区二区在线| 久久亚洲一区二区三区四区| 老司机精品视频网站| 欧美精品二区三区四区免费看视频| 欧美精品一区二区精品网| 欧美日韩一区二区免费视频| 国产精品久久久久一区二区三区| 国产精品婷婷| 18成人免费观看视频| 99re6这里只有精品| 亚洲一区二区久久| 久久久久久久久久久久久9999| 美女日韩欧美| 日韩视频一区二区三区| 亚洲一区尤物| 久久男人资源视频| 欧美日韩国产欧美日美国产精品| 欧美午夜欧美| 激情综合久久| 在线视频欧美精品| 久久精品中文字幕免费mv| 亚洲电影下载| 亚洲欧美中文另类| 麻豆精品一区二区av白丝在线| 欧美视频一二三区| 一区在线免费| 亚洲一区二区三区视频播放| 久久视频精品在线| 日韩视频免费观看高清完整版| 欧美在线视频不卡| 欧美理论电影网| 国内精品久久久久影院优| 一本大道久久a久久精品综合| 久久精品人人做人人综合| 亚洲精品1区2区| 久久精品国产免费| 国产精品mm| 亚洲日韩欧美视频一区| 欧美在线综合视频| 亚洲精品视频在线播放| 久久国产毛片| 国产精品三上| 在线亚洲高清视频| 欧美国产第一页| 午夜影院日韩| 国产精品久久久久久久久婷婷| 最新热久久免费视频| 久久久久久久综合色一本| 中日韩美女免费视频网址在线观看 | 亚洲精品一品区二品区三品区| 久久精品视频va| 国产精品一二一区| 一区二区三区国产在线观看| 免费成人高清视频| 欧美一区二区视频在线观看| 国产精品v亚洲精品v日韩精品| 亚洲精品影视| 欧美激情亚洲| 久久永久免费| 韩国在线一区| 久久久久国产一区二区| 亚洲一区二区在线| 欧美午夜电影网| 在线综合欧美| 91久久在线视频| 欧美精品免费看| 亚洲人成在线影院| 欧美激情偷拍| 免费视频久久| 亚洲精品小视频| 亚洲精品国产视频| 欧美日韩精品是欧美日韩精品| 亚洲黄页一区| 最新日韩在线视频| 欧美激情精品久久久| 91久久黄色| 亚洲精品欧美| 欧美日韩中文字幕精品| 亚洲四色影视在线观看| 中文av一区特黄| 国产精品麻豆va在线播放| 性感少妇一区| 先锋影院在线亚洲|