由於涉及到整個區間的資料修改和查詢,所以是一道線段樹題目。
這裡主要的就是記住模板:
貼個大佬部落格:
然後我就偷懶吧。。
#include
#include
using
namespace std;
#define mem(a) memset(a,0,sizeof(a))
#define lson l, m, rt << 1
#define rson m + 1, r, rt << 1 | 1
const
int maxn=
50005
;typedef
long
long ll;
ll sum[maxn<<4]
=;ll add[maxn<<2]
=;void
pushup
(ll rt)
void
pushdown
(ll rt,ll m)
}void
build
(ll l,ll r,ll rt)
ll m=
(l+r)
>>1;
build
(lson)
;build
(rson)
;pushup
(rt);}
void
updata
(ll l,ll r,ll num,ll l,ll r,ll rt)
pushdown
(rt,l-r+1)
; ll m=
(r+l)
>>1;
if(l<=m)
updata
(l,r,num,lson);if
(r>m)
updata
(l,r,num,rson)
;pushup
(rt);}
ll query
(ll l,ll r,ll l,ll r,ll rt)
pushdown
(rt,r-l+1)
; ll m=
(l+r)
>>1;
ll ans=0;
if(l<=m) ans+
=query
(l,r,lson);if
(r>m) ans+
=query
(l,r,rson)
;return ans;
}int
main()
if(!strcmp
(cmd,
"add"))
if(!strcmp
(cmd,
"sub"))
if(!strcmp
(cmd,
"end"))
break;}
}return0;
}
HDU 1166 敵兵布陣 線段樹
第一道線段樹的題目,正在學習中 include include include using namespace std define max 55555 int sum max 2 n void pushup int rt void build int l,int r,int rt int mid ...
hdu1166敵兵布陣 線段樹
problem description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的...
A 敵兵布陣 線段樹 hdu 1166
a 敵兵布陣 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit status practice hdu 1166 description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek...