Day8(分块)

Problem 1

1.带修改的主席树+平衡树,维护前驱:每修改一个数会导致三个数的前驱改变,对每个值开平衡树,存放每个值的位置在哪

2.分块,维护前驱,开一个数组表示每个块内排序后的结果,两边暴力,中间二分

O(2s+(N/s)*logs) s=sqrt(N*logN)

法二:f[i][j]为从i到j的块的set,把set换成可持久化线段树或可持久化平衡树

或f[i][j]存i块到j块颜色个数

g[i][c] 前面i个块c颜色出现的次数,前缀和维护??

3.莫队

 

f[i][j]

 

Problem 11

离线:莫队+可持久化并查集

 

Problem 16

分块

二分

 

Problem 11 

记录使得i可以作为生成森林的边需要把谁干掉

LCT(删边加边)+主席树(维护比k小的数)

 

Problem 14

f[k]长度为k的路径最小的权值

f[k]权值为k是路径最长多少

=(l+f[v1])*min(v,v1)

1.v1>=v maxf[v1]

2.v1<v (l+f[v1])*v1=l*v1+f[v1]*v1

y1=l+f[1]

y2=l*2+f[2]*2

上/下? 凸鞘

太麻烦了,只处理第一种情况:正着扫一遍+倒着扫一遍

 

出现偶数次,bzoj2821

posted @ 2019-01-08 09:57  WiFiMonster  阅读(88)  评论(0编辑  收藏  举报