【題目大意】
長度為l的板被分成l段,每段長乙個單位長度 (1 <= l <= 100000),
有o個操作 (1 <= o <= 100000)
操作分兩種
c a b c 表示將區間[a,b]染成顏色c (1 <= c <= 30)
p a b 輸出[a,b]有多少種不同的顏色
開始時[1,l]的顏色為1
【解題思路】
觀察顏色的種數最多為30種。因此可以建30顆線段樹。tree[x]i表示有無這種顏色i。
【**】
#include
#include
#include
using
namespace std;
int l,t,o;
bool tree[
400004][
35];int d[
400004];
bool ans[35]
;void
build_tree
(int l,
int r,
int root)
void
down
(int root)
tree[lson]
[sym]
=true
; tree[rson]
[sym]
=true
; d[root]=0
; d[lson]
=sym;
d[rson]
=sym;
}void
update
(int l,
int r,
int l,
int r,
int root,
int c)
int mid=
(l+r)/2
;if(d[root]!=0
)down
(root)
;update
(l,mid,l,r,root*
2,c)
;update
(mid+
1,r,l,r,root*2+
1,c)
;for
(int i=
1;i<=t;i++
) tree[root]
[i]=
(tree[root*2]
[i]| tree[root*2+
1][i]);}
void
query
(int l,
int r,
int l,
int r,
int root)
int mid=
(l+r)/2
;if(d[root]!=0
)down
(root)
;query
(l,mid,l,r,root*2)
;query
(mid+
1,r,l,r,root*2+
1);for
(int i=
1;i<=t;i++
) tree[root]
[i]=
(tree[root*2]
[i]| tree[root*2+
1][i]);}
intmain()
if(ch==
'p')
}return0;
}
專題(一)優化演算法
2.動量 momentum 演算法 2.2 nag 演算法 nesterov 動量 3.自適應學習率的優化演算法 3.2 rmsprop 3.3 adadelta 3.4 adam 4.如何選擇優化演算法 5.基於二階梯度的優化演算法 微積分中使用梯度表示函式增長最快的方向 因此,神經網路中使用負梯...
演算法優化專題E POJ 2528
題目大意 有一塊長度為x的板 1 x 10000000 均分成x份,每份長乙個單位長度。現在有n張海報 1 n 10000 每張海報有個區間 li,ri 表示這張海報會占用 li,ri 的位置,若區間 li,ri 有其他海報,那麼這些海報會被新貼的覆蓋,按照輸入的順序貼這n張海報。問最後能看見多少張...
優化演算法介紹2
優化演算法介紹2 牛頓法 擬牛頓法介紹及其實現 上篇部落格介紹了利用梯度方法進行優化的幾個演算法,簡單來說就是通過計算損失函式的在當前點的梯度,衡量向哪個方向移動會獲得最快的降速,本篇所講的幾個演算法是它們的延伸。他們不僅計算出當前點的下降速度,而且還計算出當前下降速度的加速度,即這個下降速度會變大...