應用:區間最值查詢問題、區間求和
連續區間的修改或單點更新
例題:hdu——1166敵兵布陣
//線段樹功能:add:單點增減 sum:區間求和
#include#include#include#include#include#include#includeusing namespace std;
#define maxn 2010
#define inf 99999999
#define max 50000
struct stup[3*max];
int n;
void build(int i,int a,int b)//構造以【a,b】為根的線段樹
}int sum(int i,int a,int b)//第a個營地到第b個營地的總人數
void add(int i,int a,int val)//將第a個營地的人數+val
else
}int main()
printf("case %d:\n",j);
while (scanf("%s",ch) && strcmp(ch,"end")!=0)
}return 0;
}
線段樹單點更新hdu1166
學習自 先序建子樹,然後回溯建立父節點 更新時先遞迴更新子節點,然後再回溯更新父節點 回溯思想很重要 include using namespace std const int maxn 50005 int sum maxn 2 void build int l,int r,int rt void ...
HDU 1166 線段樹單點更新
c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的一清二楚,每個工兵營地的人數都有可能發生...
HDU1166 線段樹區間求和,單點更新
problem description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的...