HDU 1166 敵兵布陣 單點修改 區間查詢

2022-07-30 11:21:10 字數 784 閱讀 1877

原題

這是一道基於樹狀陣列基本操作的板子題。

本題涉及到樹狀陣列幾個基本操作:

① 單點查詢

int query(int x)

return ans;

}

② 單點修改

void add(int i,int j)

}

③ 區間查詢

我們知道樹狀陣列儲存的是字首和,所以要查詢區間[l,r]中所有數的和,只需計算ask(r)-ask(l-1)。

所以該題只需簡單的模擬即可,wa了一發的原因是因為忘記了樹狀陣列要先初始化為0;

ac**:

#includeusing namespace std;

int a[50005],c[50005],n;

int query(int x)//單點查詢

return ans;

}void add(int i,int j)//單點修改

}int main()

char b[10];

int i,j;

printf("case %d:\n",cnt++);

while(~scanf("%s",b))

else if(b[0]=='a')

else if(b[0]=='s')

add(i,-j);

}memset(c,0,sizeof(c));//要注意樹狀陣列的初始化

}return 0;

}

hdu 1166 敵兵布陣

這是一道線段樹里最簡單的一類題目了,單點更新型別!include define lson l m rt 1 define rson m 1 r rt 1 1 const int maxx 55555 int sum maxx 2 void pushup int rt void build int l...

hdu 1166 敵兵布陣

線段樹的模版 沒什麼思想 include include include include include include include include include include include include include define ll long long define vi vec...

HDU 1166 敵兵布陣

description lily 特別喜歡養花,但是由於她的花特別多,所以照料這些花就變得不太容易。她把她的花依次排成一行,每盆花都有乙個美觀值。如果lily把某盆花照料的好的話,這盆花的美觀值就會上公升,如果照料的不好的話,這盆花的美觀值就會下降。有時,lily想知道某段連續的花的美觀值之和是多少...