hdu 1166 敵兵佈陣 線段樹
#include <iostream> #include <cstring> #include <algorithm> #include <cstdio> #define lson l, m, rt << 1 #define rson m+1, r, rt << 1 | 1 using namespace std; const int MAXN = 50010; int sum[MAXN<<2]; void PushUp(int rt) { sum[rt] = sum[rt<<1] + sum[rt<<1|1]; } void build(int l, int r, int rt) { if(l == r) { scanf("%d", &sum[rt]); return; } int m = (l+r)>>1; build(lson); build(rson); PushUp(rt); } void UFset(int p, int a, int l, int r, int rt) { if(l == r) { sum[rt] += a; return; } int m = (l+r) >> 1; if(p <= m) UFset(p, a, lson); else UFset(p, a, rson); PushUp( rt ); } int Query(int L, int R, int l, int r, int rt) { if(L <= l && R >= r) { return sum[rt]; } int m = (l+r) >> 1; int ret = 0; if(L <= m) ret += Query(L, R, lson); if(R > m) ret += Query(L, R, rson); return ret; } int main() { int T , n; scanf("%d",&T); for (int cas = 1 ; cas <= T ; cas ++) { printf("Case %d:\n",cas); scanf("%d",&n); build(1 , n , 1); char op[10]; while (scanf("%s",op)) { if (op[0] == 'E') break; int a , b; scanf("%d%d",&a,&b); if (op[0] == 'Q') printf("%d\n",Query(a , b , 1 , n , 1)); else if (op[0] == 'S') UFset(a , -b , 1 , n , 1); else UFset(a , b , 1 , n , 1); } } return 0; }
相關推薦
hdu 1166 敵兵佈陣 線段樹模板
單結點更新 線段數是二叉搜尋樹,類似區間樹,它在各個節點儲存一條線段(陣列中的一段子陣列),主要用於高效解決連續區間的動態查詢問題,由於二叉結構的特性,它基本能保持每個操作的複雜度為O(logn)。 線段樹的每個節點表示一個區間,子節點則分別表示父節點的左右半區間,例
hdu 1166 敵兵佈陣(線段樹)
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵營地的人數都有可能發生變動,可能
hdu 1166 敵兵佈陣 線段樹
#include <iostream> #include <cstring> #include <algorithm> #include <cstdio>
HDU 1166 敵兵佈陣 線段樹
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵營地的人數都有可能發生變動,可
hdu 1166 敵兵佈陣(線段樹點區)
題目大意: 給出初始化的區間值,然後有三種詢問 Query a b 詢問區間[a,b]值的總和 Add a b 第a個元素的值加b Sub a b
HDU 1166 敵兵佈陣 線段樹
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵營地的人數都有可能發生變動,可能
HDU 1166-敵兵佈陣【樹狀陣列&&線段樹單點更新】【模板】
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵營地的人數都有可能發生變動,可
HDU-1166 敵兵佈陣(樹狀陣列)
樹狀陣列(Binary Indexed Tree(B.I.T))是能夠完成下述操作的資料結構。 給一個初始值全為0的數列a1,a2,……,an 給定i,計算a1+a2+…+ai (sum) 給定i和x,執行ai += x (update) 由上圖所知:
POJ 1166-敵兵佈陣 (線段樹裸題)
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵營地的人數都有可能發生變動,可能
1166 敵兵佈陣 線段樹
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵營地的人數都有可能發生變動,可
HDU 1166 敵兵佈陣【線段樹(單點更新與區間求和)】
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵營地的人數都有可能發生
hdu 1166 敵兵佈陣 (單點更新線段樹模板)
題目連結:哆啦A夢傳送門 題解: 參考連結:https://www.cnblogs.com/TenosDoIt/p/3453089.html #include<cstdio> #include<algorithm> #include<c
hdu 1166敵兵佈陣(線段樹 模板 單點更新加區間查詢)
#include<iostream> #include<cstdio> #include<cstring> #include<cstring> #include<algorithm> using namespac
HDU 1166 敵兵佈陣(線段樹模板題)
敵兵佈陣 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 127082 Accepted Submissi
線段樹(點)簡單題 hdu 1166 敵兵佈陣
敵兵佈陣 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 120002 Accepted Submissi
HDU 1166 敵兵佈陣 【線段樹】
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵營地的人數都有可能發生變動,可能
敵兵佈陣(線段樹HDU 1166)
敵兵佈陣 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 59947 Accepted S
hdu 1166 敵兵佈陣(線段樹)
C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工
HDU 1166 敵兵佈陣(樹狀陣列)
敵兵佈陣 C國的死對頭A國這段時間正在進行軍事演習,所以C國間諜頭子Derek和他手下Tidy又開始忙乎了。A國在海岸線沿直線佈置了N個工兵營地,Derek和Tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數C國都掌握的一清二楚,每個工兵
hdu 1166 敵兵佈陣【單點更新 區間查詢】【樹狀陣列】
敵兵佈陣 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 126415 Accepted Submissi