12.1题目总结

来源:互联网 发布:美股模拟交易软件java 编辑:程序博客网 时间:2024/05/20 14:26
Tree(poj 1741)

给定一棵n(105)个顶点的树,边带正权,问你距离不超过k的顶点对数。

点分治数组维护。

bzoj2599 给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小

点分治map维护

bzoj2152 聪聪可可

点分治int维护

hdu4812 给定一棵 n 个点的树,每个点有权值 Vi
问是否存在一条路径使得路径上所有点的权值乘积 mod(10^6 + 3) 为 K
输出路径的首尾标号,若有多解,输出字典序最小的解

点分治数组维护,预处理逆元

cdoj1562 给定一棵树,边带权(0或者1),问你树上有多少条路径满足权值之和为素数。

数组统计,fft出答案

bzoj 3697

点分治时维护单独存在休息站的点

给定一棵树,边带权(0或者1),问你树上有多少条路径满足权值之和为素数。

点分治,合法点任意时刻都不小于0,数组维护

普通平衡树

宠物收养所

书架

给定初始时书架上从上往下的书本的编号,维护这个书架,支持五种操作。
 1. Top S——表示把编号为S的书房在最上面。 2. Bottom S——表示把编号为S的书房在最下面。 3. Insert S T——T∈{-1,0,1},若编号为S的书上面有X本书,则这条命令表示把这本书放回去后它的上面有X+T本书; 4. Ask S——询问编号为S的书的上面目前有多少本书。 5. Query S——询问从上面数起的第S本书的编号。

法一 平衡树交换书编号 法二 实数维护位置

bzoj2733

题意:维护一张点带权无向图,支持连接某两个点,询问某个连通块内权值的K小值是多少。

合并平衡树。

给你一颗树,每个结点的儿子数不超过2。每个结点有一个权值,一个结点的代价被定义为将其子树中所有结点的权值放入数组从大到小排序后,每个权值乘以其下标的和。让你计算所有结点的代价。

每层统计,向上合并

线段树1

splay标记在询问的时候下方

bzoj3223二逼平衡树

两次splay操作,然后区间标记

一列卡片,一个人,每次从卡片的最左端开始,依次看过去,如果它是当前的全局最小值,那么将它移除,如果不是,那么将它放到序列的最右端。持续到序列为空为止。问你他进行的这两种操作的总次数。

splay最小值+区间移动