A
拓扑排序最长路
B
模拟水题
C
线段树,维护遇到(0)个,(1)个,(2)个和(3)个以上的情况
D
看数据范围直接无脑搜索
E
正解是单调队列,回头再补,我写的二维(st)表加滚动数组,细节一车没调出来
F
随便推推有
[ans=sum_{i=l}^{r}sum_{j=i+1}^{r}a_i*a_j
]
[=sum_{i=l}^{r}a_isum_{j=i+1}^{r}a_j
]
[=sum_{i=1}^{r}a_i*(s_r-s_{i})
]
[=s_rsum a_i-sum a_i*s_i
]
维护区间和,区间(a_i*s_i)和就行了
由于询问都在修改后,可以做到线性
G
差分,给(l,r+1)用两个数组记录分别表示出生和死亡,算(r)之前出生的颜色数减去(l-1)之前死亡的颜色数,树状数组就能做
H
[frac{n(n+1)}{2}
]