【解题思路】
直接上树剖套线段树/BIT即可。复杂度o(n+qlog22n)(线段树)或o(n+qlog23n)(BIT)。
【参考代码】
树剖套BIT。(这个树剖好naive啊QAQ)
1 #include <algorithm> 2 #include <cctype> 3 #include <cstdio> 4 #define REP(I,start,end) for(int I=(start);I<=(end);I++) 5 #define PER(I,start,end) for(int I=(start);I>=(end);I--) 6 #define ClearStack(_stack) while(!_stack.empty()){_stack.pop();} 7 #define ClearQueue(_queue) while(!_queue.empty()){_queue.pop();} 8 #define ClearArray(_array,from,to,val) REP(i,from,to){_array[i]=val;} 9 #define maxint 32767 10 #define maxlongint 2147483647 11 #define maxint64 9223372036854775807ll 12 inline void space() 13 { 14 putchar(' '); 15 } 16 inline void enter() 17 { 18 putchar(' '); 19 } 20 inline bool eoln(char ptr) 21 { 22 return ptr==' '; 23 } 24 inline bool eof(char ptr) 25 { 26 return ptr=='